解决问题:

  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. 记录R的一些黑魔法

    通路富集结果可视化 12345678 pathway<-read.table("PTC+_transcript_pep_supp_KEGG.txt",header=T,sep ...

  2. Vue-API之全局配置

    API 全局配置 Vue.config 是一个对象,包含 Vue 的全局配置. 源码位置:util/config.js 搜索config 可以找到其源码地址,其中声明了config的类型和默认参数 下 ...

  3. 难住了同事:Java 方法调用到底是传值还是传引用

    Java 方法调用中的参数是值传递还是引用传递呢?相信每个做开发的同学都碰到过传这个问题,不光是做 Java 的同学,用 C#.Python 开发的同学同样肯定遇到过这个问题,而且很有可能不止一次. ...

  4. centos 7上openJdk 安装

    为什么不安装Oracle版本 oracle jdk 现在下载太恶心了会被登陆拦截.于是就安装openjdk. 步骤 下载 yum -y install java-1.8.0-openjdk java- ...

  5. electron+vue制作桌面应用--自定义标题栏

    electron会默认显示边框和标题栏,如下图 我们来看一下如何自定义一个更加有(gao)意(da)思(shang)的标题栏,例如网易云音乐这种 首先我们要把默认的标题栏删掉,找到主进程中创建窗体部分 ...

  6. CSS的常用单位 %和 vw vh 和 box-sizing:border-box; 和flex简介

    一.% 理解: %号是CSS中的常用单位,它是相对于父容器而言的.如:一个父容器的宽是100px,给它的子元素一个10%,那么子元素的宽就是100px的10% 10px. 效果图: (利用%设置了li ...

  7. 关于CSS设置页面背景图的一些疑问

    关于背景图片的位置其background-position设置背景图片的位置有两种方式,一种是是根据像素设置,第二种根据百分比设置,第一种根据像素的位置是很简单的,只是关于百分比这个设置理解特别容易出 ...

  8. Nginx的工作原理

    Nginx 工作原理 Nginx由内核和模块组成. Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此locat ...

  9. Kafka体系架构详细分解

    我的个人博客排版更舒服: https://www.luozhiyun.com/archives/260 基本概念 Kafka 体系架构 Kafka 体系架构包括若干 Producer.若干 Broke ...

  10. 怎么用一行HTML代码搭建一个谷歌镜像?

    <iframe src="google.com"></iframe>