C# log4net记录日志

下载:NuGet程序包

添加到记事本中

   <!--配置文件configuration的configSections节点添加->
  <configSections>         
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

<!--配置文件configuration下添加log4net节点->
<log4net>
    <!--错误日志类-->
    <logger name="logerror">
      <!--日志类的名字-->
      <level value="ALL" />
      <!--定义记录的日志级别-->
      <appender-ref ref="ErrorAppender" />
      <!--记录到哪个介质中去-->
    </logger>
    <!--信息日志类-->
    <logger name="loginfo">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <!--错误日志附加介质-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
      <param name="File" value="Log\\LogError\\" />
      <!--日志输出到exe程序这个相对目录下-->
      <param name="AppendToFile" value="true" />
      <!--输出的日志不会覆盖以前的信息-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--备份文件的个数-->
      <param name="MaxFileSize" value="10240" />
      <!--当个日志文件的最大大小-->
      <param name="StaticLogFileName" value="false" />
      <!--是否使用静态文件名-->
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <!--日志文件名-->
      <param name="RollingStyle" value="Date" />
      <!--文件创建的方式,这里是以Date方式创建-->
      <!--错误日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
    <!--信息日志附加介质-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!--信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
  </log4net>

其他方式:

<log4net>
 
 
        <!--定义输出到文件中-->
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
            <!--定义文件存放位置-->
            <file value="C:\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 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> 
            </layout> 
        </appender>
 
 
        <!--定义输出到控制台命令行中-->
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
            <layout type="log4net.Layout.PatternLayout"> 
                <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
            </layout> 
        </appender>
 
 
        <!--定义输出到windows事件中-->
        <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 
            <layout type="log4net.Layout.PatternLayout"> 
                <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
            </layout> 
        </appender>
 
 
        <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
        <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> 
            <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /> 
            <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" /> 
            <!--定义各个参数-->
            <parameter> 
                <parameterName value="@logDate" /> 
                <dbType value="String" /> 
                <size value="240" /> 
                <layout type="log4net.Layout.PatternLayout"> 
                    <conversionPattern value="%date" /> 
                </layout> 
            </parameter> 
            <parameter> 
                <parameterName value="@thread" /> 
                <dbType value="String" /> 
                <size value="240" /> 
                <layout type="log4net.Layout.PatternLayout"> 
                    <conversionPattern value="%thread" /> 
                </layout> 
            </parameter> 
            <parameter> 
                <parameterName value="@logLevel" /> 
                <dbType value="String" /> 
                <size value="240" /> 
                <layout type="log4net.Layout.PatternLayout"> 
                    <conversionPattern value="%level" /> 
                </layout> 
            </parameter> 
            <parameter> 
                <parameterName value="@logger" /> 
                <dbType value="String" /> 
                <size value="240" /> 
                <layout type="log4net.Layout.PatternLayout"> 
                    <conversionPattern value="%logger" /> 
                </layout> 
            </parameter> 
            <parameter> 
                <parameterName value="@message" /> 
                <dbType value="String" /> 
                <size value="240" /> 
                <layout type="log4net.Layout.PatternLayout"> 
                    <conversionPattern value="%message" /> 
                </layout> 
            </parameter> 
        </appender>
 
 
        <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
        <root> 
            <!--文件形式记录日志-->
            <appender-ref ref="LogFileAppender" /> 
            <!--控制台控制显示日志-->
            <appender-ref ref="ConsoleAppender" /> 
            <!--Windows事件日志-->
            <!--<appender-ref ref="EventLogAppender" />-->
            <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉 
                <appender-ref ref="AdoNetAppender_Access" /> 
            -->
        </root>
 
    </log4net>
 

创建帮助类用来调用:

public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }

        public static void WriteLog(string info, Exception ex)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, ex);
            }
        }
    }

参考:https://www.cnblogs.com/vichin/p/6022612.html

  https://www.cnblogs.com/vichin/p/6022612.html 

C# log4net记录日志

上一篇:windows把zookeeper注册成服务


下一篇:C# 引用类型的深度拷贝帮助类