DOBON.NET DOBON.NETプログラミング掲示板過去ログ

log4netのコンソール(出力画面)出力について

環境/言語:[XP VB2005]
分類:[.NET]

たびたびすいません

log4netの設定でコンソール画面に出力できるとかいてあるのですが、
VB2005で行うと出力画面に表示されません。
log4netの設定は以下の通りです。(途中省略しています)

  <log4net>
    <!-- コンソール出力用 (VS 上 [出力] ウインドウへの出力) -->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <!-- 出力文字列のフォーマット -->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="@%-5level>> %message%newline" />
      </layout>
*******省略********
    </appender>
    <!-- デフォルトの出力設定 -->
    <root>
      <level value="ALL" />
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>

テスト的に行っているDOS画面にはDEBUGが表示されますが、
これは違うものですよね・・・・

何が悪いのでしょうか?
よろしくお願いします。
■No22853に返信(ryuさんの記事)
> たびたびすいません
>
> log4netの設定でコンソール画面に出力できるとかいてあるのですが、
> VB2005で行うと出力画面に表示されません。
> log4netの設定は以下の通りです。(途中省略しています)
>
> <log4net>
> <!-- コンソール出力用 (VS 上 [出力] ウインドウへの出力) -->
> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
> <!-- 出力文字列のフォーマット -->
> <layout type="log4net.Layout.PatternLayout">
> <param name="ConversionPattern" value="@%-5level>> %message%newline" />
> </layout>
> *******省略********
> </appender>
> <!-- デフォルトの出力設定 -->
> <root>
> <level value="ALL" />
> <appender-ref ref="ConsoleAppender" />
> </root>
> </log4net>
>
> テスト的に行っているDOS画面にはDEBUGが表示されますが、
> これは違うものですよね・・・・
>
> 何が悪いのでしょうか?
> よろしくお願いします。

間違ってたらごめんなさい。

Console.Write("あいうえお")
もしくは、
Console.WriteLine("あいうえお")
じゃだめなんですか?

そもそも、log4netでコンソールに出力できる機能は知りませんが、
log4netを使うほどでもないかと。
■No22857に返信(アッシさんの記事)
> ■No22853に返信(ryuさんの記事)
>>たびたびすいません
>>
>>log4netの設定でコンソール画面に出力できるとかいてあるのですが、
>>VB2005で行うと出力画面に表示されません。
>>log4netの設定は以下の通りです。(途中省略しています)
>>
>> <log4net>
>> <!-- コンソール出力用 (VS 上 [出力] ウインドウへの出力) -->
>> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
>> <!-- 出力文字列のフォーマット -->
>> <layout type="log4net.Layout.PatternLayout">
>> <param name="ConversionPattern" value="@%-5level>> %message%newline" />
>> </layout>
>>*******省略********
>> </appender>
>> <!-- デフォルトの出力設定 -->
>> <root>
>> <level value="ALL" />
>> <appender-ref ref="ConsoleAppender" />
>> </root>
>> </log4net>
>>
>>テスト的に行っているDOS画面にはDEBUGが表示されますが、
>>これは違うものですよね・・・・
>>
>>何が悪いのでしょうか?
>>よろしくお願いします。
>
> 間違ってたらごめんなさい。
>
> Console.Write("あいうえお")
> もしくは、
> Console.WriteLine("あいうえお")
> じゃだめなんですか?
>
> そもそも、log4netでコンソールに出力できる機能は知りませんが、
> log4netを使うほどでもないかと。

返信ありがとうございます。
実行時に出力画面に出すようにしたいのです。
”デバック時はコンソールのみへ出力し、ログにははかない”
”INFO以上はログへ出力”
みたいな切り替えが必要な機能となっています。

うまくいっていたソースもあるのですが、
それはFORM上でlogger.debug("A")と書いてあり、*loggerはIlogで宣言済み
今回はloggerをラッピングしたクラスを作りました。
そのラッピングしたクラス内でlogger.debug("A")と書くと
出力画面に表示されなくなりました。
logger.info("A")ではファイルには出力されます。
なぜラッピングしたら出力されなくなったのかが疑問なのです。
よく考えると、log4netのconfig設定のせいではないのかな・・・

よろしくお願いします。
>今回はloggerをラッピングしたクラスを作りました。
そのクラスを作る前は、動作して、そのクラス経由だと、
動作しなくなった。ということですよね?
そのクラスのソースを掲示してはどうでしょうか?
> 今回はloggerをラッピングしたクラスを作りました。
> そのラッピングしたクラス内でlogger.debug("A")と書くと
> 出力画面に表示されなくなりました。

  私も以前クラス化して使えたらとがんばったのですが・・・
  log4netの要求仕様で、いろいろ、おまじないを書かないと
  log4net自体動作しないのですが、クラス化した場合、本体
  EXE側のおまじないを参照しない為、動作しません。

  これはlog4netの仕様かと思い、EXE側に直接記述してクラス
  化を断念しました。

※ クラス化して動作するようにした人が居たら、おまじないの
  記述方法を教えてほしいです!

参考までに。

DOBON.NET | プログラミング道 | プログラミング掲示板