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 ...
随机推荐
- 再谈拍照,OPPO这次拿什么和iPhone7拼?
一年一度的iPhone新机如期而至,双摄像头成为iPhone 7 Plus标配,尽管在这之前,双摄像头已有少数厂商在手机上装备,但苹果一出,市场必定全面跟进.无论各大厂商是否采用双摄像头,在手机拍照 ...
- VM安装Linux Centos7.0虚拟机
一.准备工作 1.安装VMware 官网https://www.vmware.com/cn.html 2.准备centos7的镜像文件 官网下载链接:http://isoredirect.centos ...
- webpack中打包拷贝静态文件CopyWebpackPlugin插件
copyWebpackPlugin: 作用:用于webpack打包时拷贝文件的插件包 安装:npm install copyWebpackPlugin@版本号 使用:// copy custom st ...
- Cisco模拟器的基本使用
获取帮助查找命令 只需输入一个'?'便可得到详细的帮助信息,如果想获取c开头的命名,那么直接输入'c?'即可. 在各个模式下切换的方法 给如图所示路由器接口配置IP地址 第一步:安装HWIC-2T(串 ...
- 【转】css样式自动换行(强制换行)
原文链接:http://blog.csdn.net/ye987987... 自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的 ...
- 前端分享之cookie的使用及单点登录
cookie是什么 cookie的英文意思是饼干.在计算机术语中指服务端存放在客户端的一段数据.这段数据在客户端每次进行http请求时会自动加在http请求报文中的header上:服务端在响应时,可以 ...
- 天坑,CSS之定位Position(六分之五)
Position定位 个人觉得position这个属性真的算是CSS的见面杀了.尤其是absolute,当年可是被虐的不轻.当然了,现在爱上了这个属性,谁用谁知道. position属性 positi ...
- [转帖]RSYNC 的核心算法
RSYNC 的核心算法 https://coolshell.cn/articles/7425.html rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并 ...
- springmvc与swagger2
首先呢我们导入相关的jar包文件 为了方便copy我copy一份 <!-- 导入java ee jar 包 --> <dependency> ...
- Oracle批量插入有日期类型数据
例如现在有张表 id(number) startTime(date) name(varchar2) 1 2017-08-13 zhangsan 2 2017-08-14 zhangsan 需要批量 ...