原先有windows service用log4net记录异常的经验,最近用.net写了com组件,使用log4net记录异常日志!不知为何记录不了
首先引用了log4net.dll
添加了配置文件:log4net.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <root> <level value="ALL" /> </root> <!-- 服务错误日志 --> <logger name="ErrorLog"> <level value="INFO" /> <appender-ref ref="ErrorLog" /> </logger> <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender,log4net" > <param name="File" value="Logs\\Error\\" /> <param name="AppendToFile" value="true" /> <param name="RollingStyle" value="Date" /> <param name="DatePattern" value="yyyy-MM\\"ServiceError-"yyyy-MM-dd".txt"" /> <param name="StaticLogFileName" value="false" /> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} %m%n" /> </layout> </appender> </log4net> </configuration>
代码:
//记录log信息 ILog log = LogManager.GetLogger("ErrorLog"); log.Info( "错误信息:" + errors);
试试
log.Error( "错误信息:" + errors);
还是不行 我记录的就是 一般性信息
@我从草原来: winform or wpf?
@WuRang: 是.net写的一个类库 注册成的com+组件。
@WuRang: 注册组件时只引用了我写的类库的dll,我将log4net.dll和log4net.config都放到引用dll同目录下,这样做没问题吧?我怀疑就是没有走,可是这个组件是一直运行着呢,也操作成功过!
@我从草原来: 做dll的时候直接把log4net.dll和log4net.config 写进去啊,为什么要分开呢
@WuRang: 嗯 是啊 做的时候就是一起编译的,不然代码中也不可能写记录日志代码,只是我注册组件时只用到dll,因此log4net相关配置文件就放到被引用dll同目录下。因为头一回做com组件。因此不知道这么做是否可行
@我从草原来: 不是,注册组件可以把整个项目注册进去啊,包括配置文件http://www.cnblogs.com/Real_Dream/articles/1577938.html
@我从草原来: 还有,是单独做一个执行程序,看看能运行不
将整个项目注册进去???
@我从草原来: 是啊,一般都是建一个类库,然后在里面把配置什么的都加进去,然后注册com
@WuRang: 嗯 我是这么做的 但是注册时只用dll
为啥不能webserivce的方式代替com组件!
组件用来操作powershell命令
com组件的方式记录日志,我这种方式有问题么?
自己解决了 在服务器sysytem32目录下添加log4net配置文件就可以了
右键“log4net.config”——>“选始终复制”