zoukankan      html  css  js  c++  java
  • Log4net使用方法

    简单的记录一下log4net的使用方式.详细的方法网上有很多滴.

    配置文件:

    <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
        </configSections>
    
        <log4net>
            <root>
                <level value="ALL"/>
                <appender-ref ref="RollingFileAppender"/>
                <!--<appender-ref ref="AdoNetAppender"/>-->
            </root>
    
            <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
                <file value="D:log.txt"/>
                <appendToFile value="false"/>
                <maxSizeRollBackups value="-1"/>
                <maximumFileSize value="2MB"/>
                <rollingStyle value="Date"/>
                <datePattern value="yyyy-MM-dd&quot;.log&quot;" />
                <staticLogFileName value="false"/>
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%date %-5level %logger - %message%newline"/>
                </layout>
            </appender>
        </log4net>
    View Code

    在代码中关联配置文件和代码,使程序读取配置文件并初始化.

    有2种方式:

    1. 在运行的代码中添加log4net.Config.XmlConfigurator.Configure();有多个重载的方法,可以指定配置文件,也可以指定XMLElement元素,也可以为空,表示使用使用应用程序的配置文件.

    2. 在AssemblyInfo中添加[assembly: log4net.Config.XmlConfigurator(ConfigFile="",ConfigFileExtension="config")]

    如果指定配置文件的名字ConfigFile,也就是在运行目录下的配置文件的名字,这个配置文件可能不会生成到输出目录,需要设置配置文件的属性,始终复制.

    也可以指定文件的扩展名.ConfigFileExtension,是指明了和可执行程序集同名的配置文件的扩展名.这两个参数不能同时使用

    在Revit二次开发中,使用Log4net记录日志,在不显式指定配置文件时,会按照默认规则查找,会在Revit的运行目录applicationBaseDirectory组合插件DLL的名称生成配置文件的全路径.这样会导致出错.需要显式指定

    fullPath2ConfigFile = Path.Combine(applicationBaseDirectory, SystemInfo.AssemblyFileName(sourceAssembly) + m_configFileExtension);

    在运行时修改log4Net的日志文件路径

                var reposistory = log4net.LogManager.GetRepository();
                var appenders = reposistory.GetAppenders();
                foreach (var item in appenders) {
                    var fileAppender = item as log4net.Appender.FileAppender;
                    if (fileAppender != null) {
                        fileAppender.File = Path.Combine(Path.GetDirectoryName(SystemInfoConfig.Log4netConfigFile), "log.txt");
                        fileAppender.ActivateOptions();
                    }
                }
    View Code

     

  • 相关阅读:
    主键索引就是聚集索引吗?
    聚集索引以及非聚集索引
    IO阻塞模型、IO非阻塞模型、多路复用IO模型
    Log4j的使用说明
    前置机是什么
    转:图文理解区块链
    DQL、DML、DDL、DCL全名是啥?
    OLAP和OLTP的区别
    JAVA之运算符优先级
    JAVA之异常处理(一)
  • 原文地址:https://www.cnblogs.com/zhangliming/p/3506690.html
Copyright © 2011-2022 走看看