2016-09-09 8 views
0

をロギングない:でlog4netのは、次のように私はlog4netのを設定しているメソッド名

AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"App_Data\log4net.config", Watch = true)] 

変換パターンがある:

<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="{%level}%date{dd/MM/yyyy HH:mm:ss} - %C{1}.%M - %message%newline" /> 
</layout> 

そしてロガーは次のようにインスタンス化されています。

logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

私も試しました:

logger = LogManager.GetLogger(Assembly.GetCallingAssembly(), "root"); 

ただし、呼び出し元のメソッド名は記録されていません。

私には何が欠けていますか?

EDIT

次のようにロガーが作成されている:

logger = LogManager.GetLogger(typeof(LogService)); 

変換パターンが上記のようです。ログ出力は次のようになります。

14/09/2016 13時11分13秒INFO - MyController + d__4.MoveNext - MyController + d__7 - NonActionMethod

14/09/2016 13時11分13秒DEBUGコール

MyController: - `1.MoveNext開始...

は、それが可能にフォーマットを変更することです。あなたがして名前を取得することができます

LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

答えて

0

あなただけのタイプ名でロガーを得ているMethodBase.GetCurrentMethod()それはまだ書き込みません

LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType+"."+MethodBase.GetCurrentMethod().Name); 
+0

名前。呼び出し元のメソッド名 –

+0

あなたのロギングステートメントは、匿名メソッドにコンパイルされたデリゲート内にあると思います。これはおそらく、メソッド名が表示されない理由です。 – Peter

関連する問題