2011-08-16 14 views
5

Tôi có ứng dụng bảng điều khiển với log4net và tôi muốn thêm tên tệp nhật ký từ mã. (Tôi sử dụng các chủ đề sau)log4net log4net.Util.PatternString định cấu hình từ mã

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> 

Và tôi nhận được (null).

Cảm ơn sự giúp đỡ của bạn.

+0

có cùng một vấn đề ở đây - giải pháp nào chưa? –

+0

null là gì? Xin vui lòng ... –

+0

@Love Ông có nghĩa là con đường kết thúc lên là 'd: \ TEMP \ default_ (null) .log'. Tôi cũng gặp vấn đề này với log4net v1.2.13. –

Trả lời

0

Nó làm việc cho tôi - tôi đã sử dụng log4net 1.2.11 Tiếp theo là cấu hình mẫu tôi đang sử dụng (tôi đã sử dụng cùng một mã C# như bạn):

<?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

không hoạt động đối với tôi, tôi có phiên bản 1.2.13.0 –

0

này nên làm việc

Tôi đã sử dụng log4net 1.2.13.0. Một điều bạn nên xem xét là thêm một debug nội bộ cho log4net mà sẽ cho bạn biết lỗi thực tế.

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 phần

<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>