Log4Net基本配置

开源日志管理工具,项目主页:http://logging.apache.org/log4net/

基本用法:

1、程序目录新建目录“Config”,目录内新建文件“log4net.config”,右键->属性->“复制到输出目录” 选 “始终复制”

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="RollingLogFileAppender" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>

  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--1. 文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录-->
      <file value="Logs/" />
      
      <!--2. 创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite-->
      <rollingStyle value="Date" />

      <!--3. 当 RollingStyle 为 Composite 或 Date,这里设置文件名格式-->
      <datePattern value="yyyy-MM-dd'.log'" />
      
      <!--4. true/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。-->
      <staticLogFileName value="false" />

      <!--5. 当 rollingStyle 为Composite 或 Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)-->
      <maximumFileSize value="1KB" />
      
      <!--6. 默认值为-1。当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。  
             大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。  
             当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。-->
      <countDirection value="-1" />
      
      <!--7. 备份日志数目,默认为0。在CountDirection为负数时有效。-->
      <maxSizeRollBackups value="-1" />
      
      <!--8. true/false,默认为true。当文件存在时,是否在原文件上追加内容。-->
      <appendToFile value="true" />

      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %thread %logger - %message %newline" />
      </layout>
    </appender>

    <root>
      <!-- 记录哪个级别以上的日志:  OFF->FATAL->ERROR->WARN->INFO->DEBUG/ALL -->
      <level value="INFO" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
  
</configuration>

2、修改程序目录 AssemblyInfo.cs

加入以下代码:

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

3、控制台调用示例:

        static void Main(string[] args)
        {
            var logger = LogManager.GetLogger(typeof(Program));

            for (int i = 0; i < 1000; i++)
            {
                logger.Error("Error 级别日志.");
            }

            Console.WriteLine("done.");
            Console.Read();
        }

配置比较多,更多配置请参见官方文档:http://logging.apache.org/log4net/release/manual/configuration.html

posted @ 2014-12-28 18:02  cnhxz  阅读(1720)  评论(0编辑  收藏  举报