Log4Net读取XML配置文件及在代码中完成添加Logger操作
解决问题:
- 将log4net配置文件与app.config配置文件分开
- 手动读取log4net配置文件
- 手动创建logger
- 可将日志输出功能封装在类库中,应用程序引用时无需添加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".txt""" />
<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".txt""" />
<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".txt""" />
<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文件中去进行读取操作,一个道理。
值得强调的是:
- 在代码中形式的配置文件内容都是两个引号(“”),不是一个(”)
- 不需要添加那句“[assembly: log4net.Config.XmlConfigurator(Watch = true)]”
Log4Net读取XML配置文件及在代码中完成添加Logger操作的更多相关文章
- paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结
paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中 xml读取通过jdk xml 初始化c3c0在代码中.. ... 作者Attilax 艾龙, EMAI ...
- 读取xml数据装配到字典中之应用场景
前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...
- 【XML配置文件读取】使用jdom读取XML配置文件信息
在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0& ...
- Android color(颜色) 在XML文件和java代码中
Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...
- Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项
场景 Winform中对ZedGraph的RadioGroup进行数据源绑定,即通过代码添加选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- cocos2dx中调用TinyXml读取xml配置文件 || cocos2d-x 中跨平台tinyxml读取xml文件方式
TiXmlDocument *doc = newTiXmlDocument; #if (CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID) //Android平台tin ...
- DOM4J 读取XML配置文件进行数据库连接
介绍介绍DOM4J. 据说是非常优秀非常优秀的Java XML API(Dom4j is an easy to use, open source library for working ...
- spring读取xml配置文件(二)
一.当spring解析完配置文件名的占位符后,就开始refresh容器 @Override public void refresh() throws BeansException, IllegalSt ...
- Spring如何读取xml配置文件的
我们通过一个小案例来看xml解析过程. 1. 导包 <dependencies> <!-- xml解析工具 --> <dependency> <groupId ...
随机推荐
- RxJava 2.x 源码分析
本次分析的 RxJava 版本信息如下: 12 implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'implementation 'io.reac ...
- 深入理解JavaScript的函数作用域
什么是作用域 ? 作用域:一个变量可以生效的范围. 变量不是在所有地方都可以使用的,而这个变量的使用范围就是我们要说的作用域. 注意:在JavaScript中,划分作用域也是用大括号划分的, 但是在 ...
- 47-Python进阶小结
目录 Python进阶小结 一.异常TODO 二.深浅拷贝 2.1拷贝 2.2 浅拷贝 2.3 深拷贝 三.数据类型内置方法 3.1 数字类型内置方法 3.1.1 整型 3.1.2 浮点型 3.2 字 ...
- pycharm 关于模块安装出现的“[error] Microsoft Visual C++ 14.0 is required” 解决办法
刚才正准备对pycharm进行一番操作的时候,噔 噔磴噔噔 “no module define xxx” ,那我当然要把xxx给搞到pycharm上来啊, 不一会功夫 ,biu~ “[error] ...
- BLAKE及BLAKE2算法详解
1 简介 哈希算法 (Hash Algorithm) 是将任意长度的数据映射为固定长度数据的算法,也称为消息摘要.一般情况下,哈希算法有两个特点: 原始数据的细微变化(比如一个位翻转)会导致结果产生巨 ...
- 当微信小程序遇上filter~
在微信小程序的开发过程中,当你想要实现不同页面间的数据绑定,却为此抓耳饶腮时,不妨让微信小程序与filter 来一场完美的邂逅,相信会给你带来别样的惊喜~ 前段时间被安利了一个很实用的公众号-前端早读 ...
- python装饰器之函数作用域
1.函数作用域LEGB L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间 G:global全局作用域 B:build-in内置作用域 passline = 60 def fu ...
- 谈谈集合.Map
本文来谈谈我们平时使用最多的HashMap. 1. 简介 HashMap是我们在开发过程中用的最多的一个集合结构,没有之一.HashMap实现了Map接口,内部存放Key-Value键值对,支持泛型. ...
- django 博客搭建
comment1.安装django pip install django 2.创建项目 django-admin startproject mysite 3.在mysite文件夹下创建app pyth ...
- 简单易用的图像解码库介绍 —— stb_image
原文链接:简单易用的图像解码库介绍 -- stb_image 说到图像解码库,最容易想起的就是 libpng 和 libjpeg 这两个老牌图像解码库了. libpng 和 libjpeg 分别各自对 ...