解决问题:

  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. 微软亚洲研究院开源图数据查询语言LIKQ

    ​ 近日,微软亚洲研究院通过GitHub 平台开源图数据查询语言LIKQ (Language-Integrated Knowledge Query).LIKQ是基于分布式大规模图数据处理引擎Graph ...

  2. 《HelloGitHub》第 47 期

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  3. Spring Boot2.x 动态数据源配置

    原文链接: Spring Boot2.x 动态数据源配置 基于 Spring Boot 2.x.Spring Data JPA.druid.mysql 的动态数据源配置Demo,适合用于数据库的读写分 ...

  4. 2018 C笔试题

    ⼀.单项选择题(15⼩题,每⼩题2分,共30分)  解析:[传值调用],实参和形参之间传递的是“地址”  解析:[优先级]:算术运算符 > 关系运算符  >   赋值运算符    [结核性 ...

  5. jdbc Template 存储过程 返回多个结果 ,out 输出参数

    public ReportVo getReport() { //执行存储过程 ReportVo reportVo=jdbcTemplate.execute(new CallableStatementC ...

  6. OAuth 流程与发展总结 (1.0 => 1.0a => 2.0)

    OAuth 流程与发展 (1.0 => 1.0a => 2.0) 概述 概述: 开放授权协议 作用: 允许第三方应用访问服务提供方中注册的终端用户的部分资源 下面是官方描述: [OAuth ...

  7. 不一样的ZTree,权限树.js插件

    每一个有趣的创新,都源于苦逼的生活. 在最近的工作中,遇到一个做权限管理筛选的需求.简单总结需求:1展示一个组织中的组织结构2通过点击组织结构中的任意一个节点可以向上向下查询对应的组织结构 如果你不想 ...

  8. Django开发框架知识点

    一.什么是web服务器(了解) 当我们在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址.然后发送一个HTTP Request(请求)给拥有该 IP 的主机,接着就会接收到服 ...

  9. C++ 命令行窗口打印二叉树(图形)

    写这个程序的目的是学习数据结构的时候方便调试,学习起来也比较直观. 这个是我测试SplayTree时候的gif STEP 1 新建一个头文件,命名为DrawATree.hh, 将以下内容复制进去 #i ...

  10. 大型Java进阶专题(一) 前言

    前言 ​ 各位读者好,本系列为Java进阶专题,为那些有一定工作经验,做了多年业务的码农,希望突破技术瓶颈,但没有形成系统的Java只是体系,缺乏清晰的提升方法和学习路径的人,比如作者本人.该课题的是 ...