• 通过Log4net来配置我们需要的日志文件格式


     

    我们先来看看配置写入txt文件是如何 的,当然不止可以配置txt格式还有其它格式。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration> 
      
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
    
      <log4net>
        <!--定义输出到文件中-->
        <appender name="LogFileAppender"  type="log4net.Appender.FileAppender">
          <!--定义文件存放位置-->
          <file value="log.txt" />
          <appendToFile value="true" />
          <rollingStyle value="Date" />
          <datePattern value="yyyyMMdd-HH:mm:ss" />
          <layout type="log4net.Layout.PatternLayout">
    
            <!--输出格式
            样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
            <conversionPattern value="记录时间:%date%newline线程ID:[%thread]%newline日志级别:%-5level%newline出错类:%logger%newline出错位置:%l%newline- 错误描述:%message%newline异常信息:%exception%newline%newline" />
          </layout>
        </appender>
    
        <root>
          <level value="ALL" />
          <appender-ref ref="LogFileAppender" />
    
        </root>
    
      </log4net>
    
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
    </configuration>
    <?xml version="1.0" encoding="utf-8"?>
    <configuration> 
      
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
    
      <log4net>
        <!--定义输出到文件中-->
        <appender name="LogFileAppender"  type="log4net.Appender.FileAppender">
          <!--定义文件存放位置-->
          <file value="log.txt" />
          <appendToFile value="true" />
          <rollingStyle value="Date" />
          <datePattern value="yyyyMMdd-HH:mm:ss" />
          <layout type="log4net.Layout.PatternLayout">
    
            <!--输出格式
            样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
            <conversionPattern value="记录时间:%date%newline线程ID:[%thread]%newline日志级别:%-5level%newline出错类:%logger%newline出错位置:%l%newline- 错误描述:%message%newline异常信息:%exception%newline%newline" />
          </layout>
        </appender>
    
        <root>
          <level value="ALL" />
          <appender-ref ref="LogFileAppender" />
    
        </root>
    
      </log4net>
    
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
    </configuration>
     
    再来看看配置写入数据库中的配置是如何的:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      
        <!--作者:欧阳洲 At:2013年11月21日 11:12:42-->
        <!--Log4net配置信息-->
        <configSections>
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
        </configSections>
    
        <log4net>
          <!--写到数据库中-->
          <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
            <!--BufferSize为缓冲区大小,只有日志记录超设定值才会一块写入到数据库-->
            <bufferSize value="1" />
            <!--引用-->
            <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            <!--连接数据库字符串-->
            <connectionString value="Data Source=58.249.57.205,8989;Initial Catalog=GDUnicom2;User ID=tycadsql;Password=admintydzsnfgcad*208" />
            <!--插入到表Log-->
            <commandText value="INSERT INTO System__Log_Log4Net ([AddDate],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
    
            <!--以下是参数
          日志记录时间,RawTimeStampLayout为默认的时间输出格式-->
            <parameter>
              <parameterName value="@log_date" />
              <dbType value="DateTime" />
              <layout type="log4net.Layout.RawTimeStampLayout" />
            </parameter>
            <!--线程号-->
            <parameter>
              <parameterName value="@thread" />
              <dbType value="String" />
              <size value="255" />
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%thread" />
              </layout>
            </parameter>
            <!--日志等级-->
            <parameter>
              <parameterName value="@log_level" />
              <dbType value="String" />
              <size value="50" />
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%level" />
              </layout>
            </parameter>
            <!--日志记录类名称-->
            <parameter>
              <parameterName value="@logger" />
              <dbType value="String" />
              <size value="255" />
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%logger" />
              </layout>
            </parameter>
            <!--日志消息-->
            <parameter>
              <parameterName value="@message" />
              <dbType value="String" />
              <size value="4000" />
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%message" />
              </layout>
            </parameter>
            <!--异常信息。ExceptionLayout为异常输出的默认格式-->
            <parameter>
              <parameterName value="@exception" />
              <dbType value="String" />
              <size value="2000" />
              <layout type="log4net.Layout.ExceptionLayout" />
            </parameter>
          </appender>
    
          <root>
            <!--同时写入文件和数据库-->
            <level value="ALL" />
            <appender-ref ref="AdoNetAppender" />
    
          </root>
    
        </log4net>
        <system.web>
          <compilation debug="true" targetFramework="4.0" />
        </system.web>
    
    </configuration>
     
    最重要我们是如何使用它来输出不同的配置文件,通过方法我可以有选择性的配置不同的输出格式。
    	/// <summary>
            /// 日志写入文件
            /// </summary>
            /// <param name="method">当前的方法名</param>
            /// <returns></returns>
            public static ILog Log2File(string method)
            {
                string path = HttpContext.Current.Server.MapPath		("Log2File.config");
                log4net.Config.XmlConfigurator.ConfigureAndWatch(new 		System.IO.FileInfo(HttpContext.Current.Server.MapPath			("Log2File.config")));
                return log4net.LogManager.GetLogger(method);
            }
            /// <summary>
            /// 日志写入数据库
            /// </summary>
            /// <param name="method">当前的方法名</param>
            /// <returns></returns>
            public static ILog Log2Sql(string method)
            {            
                log4net.Config.XmlConfigurator.ConfigureAndWatch(new 		System.IO.FileInfo(HttpContext.Current.Server.MapPath			("Log2Sql.config")));
                return log4net.LogManager.GetLogger(method);
            }


    参考Log4net祥细配置地址:
    http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html
    http://blog.sina.com.cn/s/blog_6d1c583c01010tf3.html
  • 相关阅读:
    HTML页面之间跳转传值
    Ajax之三种数据传输格式
    css选择器
    jQuery Validate
    正则表达式
    JSP的九大内置对象,七大动作指令,四个作用域,三个编译指令
    Zooeeper之paxos算法
    ZooKeeper之选举(fastleaderelection算法)
    ZooKeeper之ZAB协议
    ZooKeeper之三阶段提交(3PC)
  • 原文地址:https://www.cnblogs.com/ChiYue/p/3447271.html
Copyright © 2020-2023  润新知