Log4net的不能产生Log文件的问题
【问题】
用如下的步骤应用了Log4Net:
- 建立了一个公用的项目, 在里面引入了Log4net的Nuget package.
- 在公用的项目中建立了一个类,加上了Log4net的attribute.
|
[assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace MyNamespace.Common { public { static LogHelper() { var logCfg = new XmlConfigurator.ConfigureAndWatch(logCfg); } public { log4net.ILog log = log4net.LogManager.GetLogger(t); log.Error("", ex); }
public { log4net.ILog log = log4net.LogManager.GetLogger(t); //log.Info(msg + "\r\n"); log.Info(msg); }
} } |
- 建立了一个新项目,然后引用这个公用项目。
- 在这个新项目中加入了log4net.config文件。
|
<?xml <configuration> <configSections> <section </configSections>
<log4net> <appender <!--日志路径--> <param <!--是否是向文件中追加日志--> <param <!--log保留天数--> <param <!--日志文件名是否是固定不变的--> <param <!--日志文件名格式为:2008-08-31.log--> <param <!--日志根据日期滚动--> <param <layout <param </layout> </appender>
<!-- <appender <mapping> <level <foreColor </mapping> <mapping> <level <foreColor </mapping> <layout <conversionPattern </layout>
<filter <param <param </filter> </appender>
<root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level <!--<appender-ref ref="ColoredConsoleAppender"/>--> <appender-ref </root> </log4net> </configuration> |
- 在新项目的文件中记Log.
|
LogHelper.WriteLog(typeof(MyClass), "here"); |
进行了上述的步骤后,程序运行的时候,并没有 Log产生。
【分析】
调试了一下,发现在实际运行的时候,Loger各个级别的输出都成false了。

这是怎么回事那?
最后发现程序输出路径下并没有log4net.config,这样的结果就是log4net无法找到配置文件,所以就默认都禁止输出了。
【解决方法】
在程序中将log4net.config设置为总是拷贝到输出目录。

这样,每次编译的时候,log4net.config就会被拷贝到程序的输出目录。
再运行程序的时候,就有log产生了。
Log4net的不能产生Log文件的问题的更多相关文章
- log4net 使用与配置 每天一份log文件
1.下载 或 在nuget安装 log4net 2. web.config (app.config) <configuration> <configSections> < ...
- C#中使用Log4net日志输出到本地文件、Textbox或Listview
网上很多配置log4net的方法,但是排行靠前的 根本就没有说明清除,导致浪费了两个小时来搞清楚如何配置,真是无语,特写此文,给那些刚接触log4net的朋友 1.参考链接:http://blog.s ...
- log4net的分类型输出文件的配置
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...
- log4net生成多个日志文件
使用Log4Net日志组件时,经常会碰到这样一种场景,我想把错误的日志记录在Error.log文件中,而把操作的日志放在Operation.log文件中 经过几番尝试,终于实现了,在此把Log4Net ...
- IISExpress Log 文件路径
问题 用VS做开发时经常用IISExpress测试web程序,那么在测试过程中生成的Log文件放在哪里了? 答案 情况1 默认情况下 applicationhost.config 文中定义了连个日志文 ...
- SQLServer2005删除log文件和清空日志的方案
数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和清空日 ...
- 转 listener.log文件过大导致oracle数据库连接非常慢
数据库(31) 最近发现oracle数据库连接非常慢,sqlplus很快,用客户端就很慢,甚至会无响应. 然后服务器内存一下就飙升到了90%,不是表空间占满了,也不是数据库连接数占满了.重启还是一样 ...
- sql2008r 收缩数据库日志log文件;删除errorlog文件的方法
1.清空log文件,以减少数据库文件log所占的空间 USE dbname1 ; GO ALTER DATABASE dbname1 SET RECOVERY SIMPLE;--设置简单恢复模式 GO ...
- 关于一次oracle sqlplus可登陆,但监听起不来的解决。由于listener.log文件超过4G
1.在oracle服务器上cmd 执行 lsnrctl 执行start 过了好久,提示监听程序已经启动. 再执行status 过来好久,才提示命令执行成功. 最后找到原因是因为C:\Oracle\di ...
随机推荐
- Training JTAG Interface
For most embedded CPU architecture implementations, the JTAG port is used by the debugger to interfa ...
- IAR EWAR 内联汇编 Error[Og010], Error [Og005], Error [Og006]
Error [Og005] + [Og006] when using inline assembler EW targets: 430, ARM, AVR EW component: C/C++ co ...
- setsockopt 设置TCP的选项SO_LINGER
SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成. 没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回.如果设置了SO_LINGE ...
- redis详解(三)-- 面试题
1. 使用Redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...
- CPU和线程的关系
比如,电脑开了两个程序qq和qq音乐,假设这两个程序都只有一个线程.人能够感觉到CPU切换的频率是一秒一次,假设当前cpu计算速度是1秒1次,那么我们就能明显感到卡顿,当聊天,点击发送按钮时候,qq音 ...
- C#使用ProtocolBuffer(ProtoBuf)进行Unity中的Socket通信
首先来说一下本文中例子所要实现的功能: 基于ProtoBuf序列化对象 使用Socket实现时时通信 数据包的编码和解码 下面来看具体的步骤: 一.Unity中使用ProtoBuf 导入DLL到Uni ...
- 分析iOS Crash文件,使用命令符号化iOS Crash文件
TBMainClient.ipa改名为TBMainClient.zip并解压得到TBMainClient.app 然后将TBMainClient.app TBMainClient.app.d ...
- 副总统第一至三季/全集Veep迅雷下载
本季第一.二.三季 Veep Season 1 (2012-2014)看点:<副总统>讲述了Selina Meyer从一名参议员成为副总统后,开始面对成堆的突发状况,很快,她便认识到,成为 ...
- Android 开发:由模块化到组件化(一)
在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发 以下高能,请做好心理准备,看不懂请发私信来交流 ...
- linux 调用栈打印
NDK开发的代码打印方式 #include <utils/CallStack.h> extern "C" void dumping_callstack(void);vo ...