zoukankan      html  css  js  c++  java
  • Log4net(1):配置的简单说明

    基础代码下载地址:https://github.com/zhangsai521314/StudyLog4net

    1:按日期分隔日志

    <configSections>
    <section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
      </configSections>
      <log4net>
        <logger name="StudyLog4net">
          <!--指定Log4.net第三个参数为StudyLog4net的则会执行StudyLog4netAppen下的配置-->
          <appender-ref ref="StudyLog4net_File" />
        </logger>
            <!--按日期分割日志文件 一天一个-->
    <appender name=" StudyLog4net_File" type="log4net.Appender.RollingFileAppender,log4net">
     <param name="File" value="log\ StudyLog4net_File\ StudyLog4net_File.log"/>
     <param name="AppendToFile" value="true"/>
        <param name="RollingStyle" value="Date"/>
        <param name="DatePattern" value="yyyy.MM.dd"/>
     <param name="StaticLogFileName" value="true"/>
    <layout type="log4net.Layout.PatternLayout,log4net">
     <param name="ConversionPattern" value="%d [%t] %-5p - %m%n"/>
     </layout>
     </appender>
      <root>
          <level value="All" />
          <appender-ref ref="rollingFile"/>
        </root>
      </log4net>
    说明: File——文件存放路径
          AppendToFile—— 是否打开续写 
     RollingStyle——文件创建的方式
    DatePattern——日期格式,当我们设置了RollingStyle 为Date方式后,Log4Net会自动使用DatePattern—— 中的日期格式来创建新的日志文件
    StaticLogFileName——是否使用静态文件名
    ConversionPattern——信息书写的布局样式设置
    Level——日志记录的类型
    rollingFile—

    2:按日志大小分隔日志

    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
      </configSections>
      <log4net>
        <logger name="StudyLog4net2">
          <!--指定Log4.net第三个参数为StudyLog4net的则会执行StudyLog4net下的配置-->
          <appender-ref ref="StudyLog4net_Size" />
        </logger>
        <!--按日志容量分割日志文件-->
        <appender name="StudyLog4net_Size" type="log4net.Appender.RollingFileAppender" >
          <param name="File" value="Log\StudyLog4net_Size\StudyLog4net_Size.log" />
          <!--是否续写-->
          <param name="AppendToFile" value="true" />
          <!--是否使用静态文件名-->
          <param name="StaticLogFileName" value="false" />
          <!--按照文件的大小进行变换日志文件-->
          <param name="RollingStyle" value="Size" />
          <!--单个文件最大容量 只有在 按Size分割时有效-->
          <param name="MaximumFileSize" value="10KB"/>
          <!--保留的log文件数量,超过此数量后,自动从最后的删除,按Size分割时有效-->
          <param name="MaxSizeRollBackups" value="2" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n" />
          </layout>
        </appender>
        <root>
          <!--日志记录的类型-->
          <level value="All" />
          <!--启用按容量分割-->
          <appender-ref ref="LogFileAppenderBySize" />
        </root>
      </log4net>

    3:将日志输出到数据库(SqlServer)

    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
      </configSections>
      <log4net>
    
        <!--当时把日志插入到数据库的时候,必须有appender-ref。否则插不进去-->
        <logger name="sourec">
          <appender-ref ref="ADONetAppender" />
        </logger>
        <!--SQL数据库-->
        <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
    
          <!--缓存区,值为1的时候并发插入的日志信息最完整-->
          <bufferSize value="1"/>
    
          <!-- SQL数据源-->
          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    
          <!-- SQL连接字符串-->
          <connectionString value="data source=.;initial catalog=zhangsai;integrated security=False;persist security info=True;User ID=sa;Password=123456" />
    
          <!--SQLServer插入语句-->
          <commandText value="INSERT INTO Log ([RecordTime],[LevelName],[Message],[Exception]) VALUES (@log_date, @log_level, @message, @exception)"/>
          <!--SQLServer创建数据库语句
          create table Log
          (
          [ID] int identity(1,1) primary key
          ,[RecordTime] datetime
          ,[LevelName] varchar(30)
          ,[Message]  varchar(2000)
          ,[Exception] varchar(4000)
          )-->
          <!--日期-->
          <parameter>
            <parameterName value="@log_date"/>
            <dbType value="DateTime"/>
            <layout type="log4net.Layout.RawTimeStampLayout"/>
          </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="@exception"/>
            <dbType value="String"/>
            <size value="2000"/>
            <layout type="log4net.Layout.ExceptionLayout"/>
          </parameter>
          <!--日志信息-->
          <parameter>
            <parameterName value="@message"/>
            <dbType value="String"/>
            <size value="4000"/>
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%message"/>
            </layout>
          </parameter>
        </appender>
        <root>
          <!--日志记录的类型-->
          <level value="All" />
          <!-- 启用保存到数据库-->
          <appender-ref ref="AdoNetAppender" />
        </root>
      </log4net>

    4:

     1 <configSections>
     2     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
     3   </configSections>
     4   <log4net>
     5     <logger name="ConsoleAppender">
     6       <!--指定Log4.net第三个参数为StudyLog4net的则会执行ConsoleAppender下的配置-->
     7       <appender-ref ref="ConsoleAppender" />
     8     </logger>
     9     <!--定义输出到控制台命令行中-->
    10     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    11       <layout type="log4net.Layout.PatternLayout">
    12         <conversionPattern value="%d [%t] %-5p - %m%n" />
    13       </layout>
    14     </appender>
    15     <root>
    16       <!--日志记录的类型-->
    17       <level value="All" />
    18       <!--控制台控制显示日志-->
    19       <appender-ref ref="ConsoleAppender" />
    20     </root>
    21   </log4net>

    常见的日志书写格式说明:

    %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息

    %n(new line):换行

    %d(datetime):输出当前语句运行的时刻

    %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数

    %t(thread id):当前语句所在的线程ID

    %p(priority): 日志的当前优先级别,即DEBUGINFOWARN…

    %c(class):当前日志对象的名称

    %L:输出语句所在的行号

    %F:输出语句所在的文件名

    %-数字:表示该项的最小长度,如果不够,则用空格填充

    Appender下的常用节点说明:

    AdoNetAppender:利用ADO.NET记录到数据库的日志。

    RollingFileAppender:将日志以回滚文件的形式写到文件中

    ConsoleAppender:将日志输出到控制台。

    FileAppender:将日志写到文件中。
    AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
    AspNetTraceAppender:能用asp.netTrace的方式查看记录的日志。
    BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
    EventLogAppender:将日志写到Windows Event Log.
    LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下).
    MemoryAppender:将日志存到内存缓冲区。
    NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
    RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service
    RemotingAppender:通过.NET Remoting将日志写到远程接收端。
    SmtpAppender:将日志写到邮件中。
    TraceAppender:将日志写到.NET trace 系统。
    UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。

    写文不易,转载请注明出处:http://www.cnblogs.com/zszs/p/5662603.html

  • 相关阅读:
    ngTemplate
    HTML5
    angular指令
    todo
    调试语句
    route attribute in webapi
    ngModelController
    angularjs中的事件
    删除IE input 下的小叉叉
    《python网络数据采集》读后感 第八章:自然语言处理
  • 原文地址:https://www.cnblogs.com/zszs/p/5662603.html
Copyright © 2011-2022 走看看