log4net 日志记录配置

配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>


  <log4net debug="true">
    <!--控制台界面日志输出-->
    <appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
      <mapping>
        <level value="ERROR" />
        <foreColor value="White" />
        <backColor value="Red" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow" />
      </mapping>
      <mapping>
        <level value="INFO" />
        <foreColor value="White" />
      </mapping>
      <mapping>
        <level value="DEBUG" />
        <foreColor value="Blue" />
      </mapping>


      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date]  %thread -- %-5level -- %logger [%M] -- %message%newline" />
      </layout>
    </appender>
    <!--本地文件日志记录-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs/applicationLog.log" />
      <!--file可以指定具体的路径 eg : d:\\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <!--备份log文件的个数最多10个-->
      <maximumFileSize value="2MB" />
      <!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <!--指定log的格式-->
        <conversionPattern value="[%date]  %thread -- %-5level -- %logger [%M] -- %message%newline" />
      </layout>
    </appender>
    <!--数据库日志记录-->
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <bufferSize value="1"/>
      <!--设置日志缓冲区大小,设置为最小,这样就可以实时写入数据,否则每次缓冲区必须填满才会写入数据库-->
      <param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
      <param name="ConnectionString" value="Database=ui;Data Source=120.55.42.150;User Id=root;Password=root123456;CharSet=utf8;port=3308;SslMode=none;"/>
      <param name="CommandText" value="insert into log(log_datetime,log_thread,log_level,log_logger,log_message) values(@log_datetime, @log_thread , @log_level, @log_logger, @log_message)" />


      <param name="Parameter">
        <param name="ParameterName" value="@log_datetime" />
        <param name="DbType" value="DateTime" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%d{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
        </param>
      </param>


      <param name="Parameter">
        <param name="ParameterName" value="@log_thread" />
        <param name="DbType" value="String" />
        <param name="Size" value="255" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%t" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@log_level" />
        <param name="DbType" value="String" />
        <param name="Size" value="50" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%p" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@log_logger" />
        <param name="DbType" value="String" />
        <param name="Size" value="255" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%c" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@log_message" />
        <param name="DbType" value="String" />
        <param name="Size" value="255" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%m" />
        </param>
      </param>
    </appender>


    <root>
      <level value="DEBUG" />
      <!--指定将此级别及以上的log打印到log文件中-->
      <appender-ref ref="ADONetAppender" /><!--将数据库日志记录添加到logger中-->
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="ManagedColoredConsoleAppender" />


    </root>
    <logger name="*">
      <level value="ALL" />
      <appender-ref ref="ADONetAppender" />
    </logger>
  </log4net>

</configuration>

日志使用:

//MethodBase.GetCurrentMethod().DeclaringType

获取到当前程序集的完整命名空间

 private static readonly ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

  logger.Info("WCS Control Center [boxkey: cc]");
                logger.Info("Version: Octopus Release (1.0.0)");

猜你喜欢

转载自blog.csdn.net/u010371458/article/details/80611110
今日推荐