zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    赶集个人 车源推送到 58
    fsockopen get,post 封装 (转)
    php write excel
    《HTTP协议详解》读书笔记---请求篇之消息报头
    《HTTP协议详解》读书笔记---请求篇之响应状态码
    《HTTP协议详解》读书笔记---请求篇之情求方法
    高效使用 GNOME Files(Nautilus) 管理文件
    手机无法连接 GSConnect:防火墙未开放端口
    Ubuntu 上安装 ArtiPub(一款开源的一文多发平台)
    GNOME 桌面必备扩展(GNOME Shell Extensions)
  • 原文地址:https://www.cnblogs.com/xfweb/p/15525046.html
Copyright © 2011-2022 走看看