私は(コンソールウィンドウで実行)ナンシーセルフホスティングアプリケーションログ私がやっている何
私の問題
を書いています、私は得ることができません私のコンソールウィンドウに何かを記録するlog4net。 (具体的に - NancyFxサービスをホスティングしているとき、私はこれが仕事を得ることができない、私は他のコンソールアプリケーションでlog4netのを使用して問題はありません。)
を研究してきた何
検索のStackOverflow):
http://www.philhack.com/wire-up-log4net-to-nancy/ https://lookonmyworks.co.uk/2012/03/14/logging-unhandled-exceptions-with-nancy/
私log4netの設定
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level: %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="Console"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
log4netの
public class MyNancyModule : NancyModule
{
private static ILog Logger = LogManager.LogFactory.GetLogger(typeof(MyNancyModule));
public MyNancyModule()
{
Logger.Debug("This is a test");
}
}
の私の使い方私の問題の例(再び)
私は上記の構成を使用して、私のコンソールウィンドウには、何もログに記録するlog4netのを取得することはできません。上のブログ記事から、Nancyがlog4Netを妨害するエラー処理パイプラインを設定することを何かしていることは理解していますが、何をやっているのか、どういうことが分かりません。
コンソールウィンドウにログオンするために、log4Netが自己ホスティングナンシーサービスで動作するようにするにはどうすればよいですか(特に内蔵診断ページへのログには興味がありません)。
他のすべてのアプリケーションと同じようにIOCコンテナにログマネージャを追加しようとはしませんでしたが、クラスごとに静的なログマネージャがあり、クラス固有のログが得られます。ブートストラッパークラスに由来しています。
私はlogManagerにServiceStack.Logging.Log4Netを使用していることを忘れていました。また、私がしなければ私の例で動作するように表示されませんように私はlog4netのを使用
private static ILog Logger = LogManager.GetLogger(typeof(ApiReverseProxyModule));
ここで、/いつあなたはlog4net構成をロードしますか? – stuartd
@stuartdあなたの質問は関連していました - 私のメインメソッドに 'LogManager.LogFactory = new Log4NetFactory(configureLog4Net:true);'行を追加するのを忘れました。担当者が必要な場合は、これを回答として追加して、そのようにマークします。ありがとう! – Jay
答えは少し薄いようですが、ありがとう:) – stuartd