2011-08-16 33 views
5

私はlog4netでコンソールアプリケーションを持っています。コードからログファイル名を追加したいと思います。 (私は後でスレッドを使用します)log4net log4net.Util.PatternStringコードから設定する

class Program 
{ 
    static void Main(string[] args) 
    { 
     { 
      log4net.GlobalContext.Properties["fname"] = "aaaa"; 
      log4net.Config.XmlConfigurator.Configure(); 
     } 
    } 
} 

<appender name="default" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="d:\\TEMP\\default_%property{fname}.log"/> 
... 
</appender> 

私は(null)を取得します。

ありがとうございました。 - それは私の作品

+0

? –

+0

nullとは何ですか?してください... –

+0

@Love彼はパスが 'd:\ TEMP \ default_(null).log'になることを意味します。私はlog4net v1.2.13でもこの問題を抱えています。 –

答えて

0

私は以下のlog4netの1.2.11 を使用は、私が使用しているサンプルの設定(私はあなたと同じC#コードを使用)です:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 
    </configSections> 

    <log4net> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file type="log4net.Util.PatternString" value="default_%property{fname}.log"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Size"/> 
     <maxSizeRollBackups value="10"/> 
     <maximumFileSize value="100KB"/> 
     <staticLogFileName value="true"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
     </layout> 
    </appender> 

    <root> 
     <priority value="ALL"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 

    </log4net> 
</configuration> 
+0

私のために働かなかった、私はバージョン1.2.13.0がある –

0

これは動作するはず

私はlog4net 1.2.13.0を使用しました。あなたが考慮すべき点の1つは、実際のエラーを示すlog4netの内部デバッグを追加することです。まだ解決策 - ここに同じ問題を抱えて

class Program 
    { 
     private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 
     static void Main(string[] args) 
     { 
      log4net.GlobalContext.Properties["fname"] = "aaaa"; 

      log4net.Config.XmlConfigurator.Configure(); 
      log.Debug("Test"); 
     } 
    } 

configセクション

<configuration>  
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
    <log4net debug="true"> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file type="log4net.Util.PatternString" value="D:\default_%property{fname}.log"/> 
     <appendToFile value="true"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> 
     </layout> 
    </appender>  
    <root> 
     <priority value="ALL"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root>  
    </log4net> 
    <system.diagnostics> 
    <trace autoflush="true"> 
     <listeners> 
     <add 
      name="textWriterTraceListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="E:\USERS\vivek.meka\Documents\Visual Studio 2015\Projects\log4net.txt" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 
関連する問題