• 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#socket客户端自己输入消息发送到服务端通信实现通信
    C#设计模式:观察者模式(Observer Pattern)
    C#冒泡排序法学习
    强类型和弱类型
    计算机网络基础知识总结
    推荐几个搜索资源网站
    推荐几个搜索资源网站
    前端:闭包的概念
    前端:闭包的概念
    收集12个经典的程序员段子
  • 原文地址:https://www.cnblogs.com/zhang1f/p/11104692.html
Copyright © 2020-2023  润新知