在.Net程序中使用log4net记录日志

1/5/2008来源:Java教程人气:7494


  log4j是java开发人员所熟悉,他提供了强大的日志记录功能,log4net是为.Net记录日志开发的.使用示例如下(C#):
  1、app.config文件
  <?XML version="1.0" encoding="utf-8" ?>
  <configuration>
  <appSettings>
  <add key="log4net-config-file" value="log4net.config"/>
  </appSettings>
  </configuration>
  2、log4net.config文件
  <?xml version="1.0" encoding="utf-8" ?>
  <configuration>
  <!-- This section contains the log4net configuration settings -->
  <log4net>
  <!-- Define some output appenders -->
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <param name="File" value="Log\\LQSS-SS-log.txt" />
  <param name="AppendToFile" value="true" />
  <param name="MaxSizeRollBackups" value="10" />
  <param name="MaximumFileSize" value="100KB" />
  <param name="RollingStyle" value="Size" />
  <param name="StaticLogFileName" value="true" />
  <layout type="log4net.Layout.PatternLayout">
  <param name="Header" value="[Header]\r\n" />
  <param name="Footer" value="[Footer]\r\n" />
  <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
  </layout>
  </appender>
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout">
  <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
  </layout>
  </appender>
  <!-- Setup the root category, add the appenders and set the default level -->
  <root>
  <level value="INFO" />
  <appender-ref ref="RollingLogFileAppender" />
  </root>
  <root>
  <level value="DEBUG" />
  <appender-ref ref="ConsoleAppender" />
  </root>
  </log4net>
  </configuration>
  3、代码文件
  using log4net;
  using log4net.Config;
  class PRogram
  {
  private static ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
  try
  {
  DOMConfigurator.Configure(
  new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
  logger.Info("Start application...");
  Console.Writeline(“请按 <enter> 键退出...");
  System.Console.ReadLine();
  }
  catch (Exception e)
  {
  logger.Info (e);
  }
  }
  }