解决问题:

  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)]”

Log4Net读取XML配置文件及在代码中完成添加Logger操作的更多相关文章

  1. paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结

    paip.获取proxool的配置  xml读取通过jdk xml 初始化c3c0在代码中  xml读取通过jdk xml 初始化c3c0在代码中.. ... 作者Attilax  艾龙,  EMAI ...

  2. 读取xml数据装配到字典中之应用场景

    前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...

  3. 【XML配置文件读取】使用jdom读取XML配置文件信息

    在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0& ...

  4. Android color(颜色) 在XML文件和java代码中

    Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...

  5. Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项

    场景 Winform中对ZedGraph的RadioGroup进行数据源绑定,即通过代码添加选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  6. cocos2dx中调用TinyXml读取xml配置文件 || cocos2d-x 中跨平台tinyxml读取xml文件方式

    TiXmlDocument *doc = newTiXmlDocument; #if (CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID) //Android平台tin ...

  7. DOM4J 读取XML配置文件进行数据库连接

        介绍介绍DOM4J.    据说是非常优秀非常优秀的Java XML  API(Dom4j is an easy to use, open source library for working ...

  8. spring读取xml配置文件(二)

    一.当spring解析完配置文件名的占位符后,就开始refresh容器 @Override public void refresh() throws BeansException, IllegalSt ...

  9. Spring如何读取xml配置文件的

    我们通过一个小案例来看xml解析过程. 1. 导包 <dependencies> <!-- xml解析工具 --> <dependency> <groupId ...

随机推荐

  1. RxJava 2.x 源码分析

    本次分析的 RxJava 版本信息如下: 12 implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'implementation 'io.reac ...

  2. 深入理解JavaScript的函数作用域

    什么是作用域 ? 作用域:一个变量可以生效的范围. 变量不是在所有地方都可以使用的,而这个变量的使用范围就是我们要说的作用域. 注意:在JavaScript中,划分作用域也是用大括号划分的, 但是在 ...

  3. 47-Python进阶小结

    目录 Python进阶小结 一.异常TODO 二.深浅拷贝 2.1拷贝 2.2 浅拷贝 2.3 深拷贝 三.数据类型内置方法 3.1 数字类型内置方法 3.1.1 整型 3.1.2 浮点型 3.2 字 ...

  4. pycharm 关于模块安装出现的“[error] Microsoft Visual C++ 14.0 is required” 解决办法

    刚才正准备对pycharm进行一番操作的时候,噔  噔磴噔噔 “no module define xxx” ,那我当然要把xxx给搞到pycharm上来啊, 不一会功夫 ,biu~ “[error] ...

  5. BLAKE及BLAKE2算法详解

    1 简介 哈希算法 (Hash Algorithm) 是将任意长度的数据映射为固定长度数据的算法,也称为消息摘要.一般情况下,哈希算法有两个特点: 原始数据的细微变化(比如一个位翻转)会导致结果产生巨 ...

  6. 当微信小程序遇上filter~

    在微信小程序的开发过程中,当你想要实现不同页面间的数据绑定,却为此抓耳饶腮时,不妨让微信小程序与filter 来一场完美的邂逅,相信会给你带来别样的惊喜~ 前段时间被安利了一个很实用的公众号-前端早读 ...

  7. python装饰器之函数作用域

    1.函数作用域LEGB L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间 G:global全局作用域 B:build-in内置作用域 passline = 60 def fu ...

  8. 谈谈集合.Map

    本文来谈谈我们平时使用最多的HashMap. 1. 简介 HashMap是我们在开发过程中用的最多的一个集合结构,没有之一.HashMap实现了Map接口,内部存放Key-Value键值对,支持泛型. ...

  9. django 博客搭建

    comment1.安装django pip install django 2.创建项目 django-admin startproject mysite 3.在mysite文件夹下创建app pyth ...

  10. 简单易用的图像解码库介绍 —— stb_image

    原文链接:简单易用的图像解码库介绍 -- stb_image 说到图像解码库,最容易想起的就是 libpng 和 libjpeg 这两个老牌图像解码库了. libpng 和 libjpeg 分别各自对 ...