• Log4Net读取XML配置文件及在代码中完成添加Logger操作


    解决问题:

    1. 将log4net配置文件与app.config配置文件分开
    2. 手动读取log4net配置文件
    3. 手动创建logger
    4. 可将日志输出功能封装在类库中,应用程序引用时无需添加assembly引用及配置文件添加
     private void CreatLoggers()
            {
                XmlDocument log4netConfig = new XmlDocument();
                log4netConfig.LoadXml(@"
                        <log4net>
                            <logger name=""logerror"">
                              <level value=""ERROR"" />
                              <appender-ref ref=""ErrorAppender"" />
                            </logger>
                            <logger name=""loginfo"">
                              <level value=""INFO"" />
                              <appender-ref ref=""InfoAppender"" />
                            </logger>
                            <logger name=""logdebug"">
                              <level value=""DEBUG"" />
                              <appender-ref ref=""DebugAppender"" />
                            </logger>
                            <appender name=""DebugAppender"" type=""log4net.Appender.RollingFileAppender"">
                              <param name=""File"" value=""Log\LogDebug\"" />
                              <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;.txt&quot;"" />
                              <param name=""RollingStyle"" value=""Date"" />
                              <layout type=""log4net.Layout.PatternLayout"">
                                <param name=""ConversionPattern"" value=""%d[%t] %m ;%n"" />
                              </layout>
                            </appender>
                            <appender name=""ErrorAppender"" type=""log4net.Appender.RollingFileAppender"">
                              <param name=""File"" value=""Log\LogError\"" />
                              <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;.txt&quot;"" />
                              <param name=""RollingStyle"" value=""Date"" />
                              <layout type=""log4net.Layout.PatternLayout"">
                                <param name=""ConversionPattern"" value=""%d[%t] %m ;%n"" />
                              </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;.txt&quot;"" />
                              <param name=""RollingStyle"" value=""Date"" />
                              <layout type=""log4net.Layout.PatternLayout"">
                                <param name=""ConversionPattern"" value=""%d[%t] %m ;%n "" />
                              </layout>
                            </appender>
                        </log4net>");
    
                ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
                XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
                logdebug = LogManager.GetLogger(rep.Name, "logdebug");
                loginfo = LogManager.GetLogger(rep.Name, "loginfo");
                logerror = LogManager.GetLogger(rep.Name, "logerror");
            }

      上述XML文件内容我手动放在代码中,也可以存在xml文件中去进行读取操作,一个道理。

      值得强调的是:

    1. 在代码中形式的配置文件内容都是两个引号(“”),不是一个(”)
    2. 不需要添加那句“[assembly: log4net.Config.XmlConfigurator(Watch = true)]”
  • 相关阅读:
    OO第四单元单元总结
    OO第三单元单元总结
    OO第二单元单元总结
    OO第一单元单元总结
    Java虚拟机解释器与编译器
    20155321 《Java程序设计》实验三 敏捷开发与XP实践
    20155321 2016-2017-2 《Java程序设计》第十周学习总结
    20155321 2016-2017-2 《Java程序设计》第九周学习总结
    20155321实验二 Java面向对象程序设计
    20155321 2016-2017-2 《Java程序设计》第八周学习总结
  • 原文地址:https://www.cnblogs.com/Khan-Sadas/p/12606085.html
Copyright © 2020-2023  润新知