• C# log4net 配置


    安装log4net

    项目 - 管理Nuget程序包,在浏览框中输入 log4net - 回车 - 选择 log4net - 安装。

    添加log4net.config

    在工程目录下添加log4net.config文件, 设置log4net.config的文件属性,自动把log4net.config的内容复制到.exe文件所在的目录

    log4net.config源码


    修改AssemblyInfo.cs

    在工程 - Properties - AssemblyInfo.cs文件中新增如下一行代码:

     

    使用


    <?xml version="1.0" encoding="utf-8" ?>
    <!--
           log4.net 官网,https://logging.apache.org/log4net/    看官方文档
           C# 写法
           ////////////////这个配置记录所有日志
           <root>
                <level value="ALL" />
                <appender-ref ref="SysAppender" />
           </root>
           ////////////////
            public static readonly log4net.ILog logInfo = log4net.LogManager.GetLogger("mLog");
            public static readonly log4net.ILog defined = log4net.LogManager.GetLogger("defined");
            
                logInfo.Info("11");
                logInfo.Error("22");
                logInfo.Debug("33");
    
                defined.Info("44");
                defined.Error("55");
                defined.Debug("66");
    --> 
    <configuration>
        <configSections>
            <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
        </configSections>
        <!--log4net配置文件-->
        <!-- 。。。。。。。。。。。控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF。。。。。。。。。。。 -->
        <log4net>
            <!-- <root>实际上就是一个根logger,所有其它logger都默认继承它,如果配置文件里没有显式定义,则框架使用根日志中定义的属性-->
            <root>
                <level value="ALL" />
                <appender-ref ref="SysAppender" /><!--记录到哪个介质中去-->
            </root>
    
            <!--log-->
            <logger name="mLog">
                <level value="ALL"/>
                <appender-ref ref="InfoAppender"/>
                <appender-ref ref="ErrorAppender"/>
                <appender-ref ref="ConsoleAppender"/>
            </logger>
    
            <!--自定义的log-->
            <logger name="defined">
                <level value="ALL" />
                <appender-ref ref="defined"/>
            </logger>
    
            <!--根记录log-->
            <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
                <!--日志路径-->
                <File value="log/log_SysAppender.txt"/>
                <!--是否是向文件中追加日志-->
                <AppendToFile value="true"/>
                <!--创建新文件的方式-->
                <RollingStyle value="Size"/>
                <!--log文件大小-->
                <MaximumFileSize value="5M"/>
                <!--备份日志数目-->
                <MaxSizeRollBackups value="30"/>
                <!--日志文件名是否是固定不变的-->
                <StaticLogFileName value="true"/>
                <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
                <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
                <!--输出格式-->
                <layout type="log4net.Layout.PatternLayout">
                    <!--日期 [级别]-->
                    <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
                </layout>
                <!--控制器,只记录级别在INFO-INFO之间的信息-->
                <filter type="log4net.Filter.LevelRangeFilter">
                    <param name="LevelMin" value="ALL" />
                    <param name="LevelMax" value="OFF" />
                </filter>
            </appender>
            
            <!--运行状态信息-->
            <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
                <!--日志路径-->
                <File value="log/log_info.txt"/>
                <!--是否是向文件中追加日志-->
                <AppendToFile value="true"/>
                <!--创建新文件的方式-->
                <RollingStyle value="Size"/>
                <!--log文件大小-->
                <MaximumFileSize value="5M"/>
                <!--备份日志数目-->
                <MaxSizeRollBackups value="30"/>
                <!--日志文件名是否是固定不变的-->
                <StaticLogFileName value="true"/>
                <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
                <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
                <!--输出格式-->
                <layout type="log4net.Layout.PatternLayout">
                    <!--日期 [级别]-->
                    <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
                </layout>
                <!--控制器,只记录级别在INFO-INFO之间的信息-->
                <filter type="log4net.Filter.LevelRangeFilter">
                    <param name="LevelMin" value="INFO" />
                    <param name="LevelMax" value="ERROR" />
                </filter>
            </appender>
            
            <!--运行错误信息-->
            <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
                <!--日志路径-->
                <File value="log/log_error.txt"/>
                <!--是否是向文件中追加日志-->
                <AppendToFile value="true"/>
                <!--创建新文件的方式-->
                <RollingStyle value="Size"/>
                <!--log文件大小-->
                <MaximumFileSize value="5M"/>
                <!--备份日志数目-->
                <MaxSizeRollBackups value="30"/>
                <!--日志文件名是否是固定不变的-->
                <StaticLogFileName value="true"/>
                <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
                <!--输出格式-->
                <layout type="log4net.Layout.PatternLayout">
                    <!--输出格式-->
                    <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
                </layout>
                <!--控制器,只记录级别在WARN-FATAL之间的信息-->
                <filter type="log4net.Filter.LevelRangeFilter">
                    <param name="LevelMin" value="WARN" />
                    <param name="LevelMax" value="ERROR" />
                </filter>
            </appender>
    
            <!--控制台-->
            <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%d %-5p %c - %m%n"/>
                </layout>
                <filter type="log4net.Filter.LevelRangeFilter">
                    <param name="LevelMin" value="INFO" />
                    <param name="LevelMax" value="ERROR" />
                </filter>
            </appender>
    
            <!--自定义信息-->
            <appender name="defined" type="log4net.Appender.RollingFileAppender">
                <!--日志路径-->
                <File value="log/log_defined.txt"/>
                <!--是否是向文件中追加日志-->
                <AppendToFile value="true"/>
                <!--创建新文件的方式-->
                <RollingStyle value="Size"/>
                <!--log文件大小-->
                <MaximumFileSize value="5M"/>
                <!--备份日志数目-->
                <MaxSizeRollBackups value="30"/>
                <!--日志文件名是否是固定不变的-->
                <StaticLogFileName value="true"/>
                <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
                <!--输出格式-->
                <layout type="log4net.Layout.PatternLayout">
                    <!--输出格式-->
                    <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
                </layout>
                <!--控制器,只记录级别在WARN-FATAL之间的信息-->
                <filter type="log4net.Filter.LevelRangeFilter">
                    <param name="LevelMin" value="INFO" />
                    <param name="LevelMax" value="ERROR" />
                </filter>
            </appender>
    
        </log4net>
    </configuration>
  • 相关阅读:
    Firefox浏览器怎么安装adobe flash player插件
    uploadify在火狐下上传不了的解决方案,java版(Spring+SpringMVC+MyBatis)详细解决方案...
    thinkphp模版调用函数方法
    Thinkphp模板中函数的使用
    60.0.1(64位)windows版 uploadify使用有问题
    一起谈.NET技术,异步调用与多线程的区别 狼人:
    一起谈.NET技术,Silverlight中使用递归构造关系图 狼人:
    一起谈.NET技术,ASP.NET Routing对请求的处理方式 狼人:
    一起谈.NET技术,闲话“多线程” 狼人:
    一起谈.NET技术,利用.NET Framework4.0的源代码调试你的应用程序 狼人:
  • 原文地址:https://www.cnblogs.com/xfweb/p/15525046.html
Copyright © 2020-2023  润新知