代码改变世界

log4net在Realse下有个好大的坑呀。

2016-04-22 15:21  咒语  阅读(292)  评论(0编辑  收藏

原因:项目在DEBUG编译下日志是好好的,但是生成了Realse布署后却无日志产生了。

查找:

官方指导:http://logging.apache.org/log4net/release/faq.html

log4net doesn't log when built in RELEASE mode

If you use attributes to configure log4net then the order by which assemblies are loaded may determine whether you attributes are used or not. Assembly load order may be different in DEBUG and RELEASE mode.

As stated in the manual the attribute will only be read for the first assembly that tries to use log4net. So it is important that you obtain your ILog instance as early as possible.

For a command line application "as early as possible" probably is the class holding the Main method, for a Web-Application it would be your Global.asax class and for a Windows Service it would be the class deriving from ServiceBase.

 

解决办法:在程序最先运行前先实例化一次即可。