修改log4net 生成换行, 缩进的XML输出
|
但是, 默认生成的格式却是:
<log4net:event logger="ControlPanelApp.MainApp" timestamp="2007-12-17T10:11:29.9375000+08:00" level="INFO" thread="7768" domain="ControlPanelApp.exe" username="ZHAORUFEI\zhao"><log4net:message>Close PCS</log4net:message><log4net:global-properties><log4net:data name="log4net:HostName" value="zhaorufei" /></log4net:global-properties></log4net:event> |
好在log4net提供了源码, 可以很容易地修改代码生成下面的缩进输出:
|
src\Layout\XMLLayoutbase.cs
中的
Format 函数, 在其中加上下面2行代码:
|
要成功编译一个release版的 log4net还需要修改下面一个文件:
AssemblyInfo.cs
因为log4net的 release用了强签名, 而签名文件我们并没有, 所以需要把强签名关闭:
|
另外, log4net为了最大限度的兼容性, 项目的csproj文件中定义的宏是 NET_1_0, 可以根据自己的需要改成 NET_1_1, 或NET_2_0, 然后再编译.
同样的原因, 项目的csproj指定的输出路径是
build\bin\net\1.0\release
build\bin\net\1.0\debug
这仅是个目录名, 生成的 log4net.dll 就放在这个目录下.
把新生成的log4net.dll 替换你已经编译好可执行文件目录下, 并不能直接使用, 因为你原来引用的官方发布的log4net.dll是一个强签名文件, 所以这会抛出一个 TypeInitialization的异常, 你的项目需要在引用了新的log4net.dll的情况下重新编译一次.