前几天写了一个 Windows 服务程序,其中使用 log4net 却总是失败。不论 log4net 的配置写在 app.config 里,还是独立的 config 文件里,都是一样。今天终于发现原来是在服务里不能正确定位到这个配置文件所致。于是经过尝试之后,发现关键在于如下代码中获取当前 exe 所在目录并用于得到 config 文件的路径。按这个写法就可以正确输出日志了: public class Service1 : ServiceBase} 其他的不多写了,附带我的 log4net.config: <?xml version="1.0" encoding="utf-8" ?><log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs/log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="100KB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d [%t] %-5p %c [%x] -%m%n" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="RollingLogFileAppender" /> </root></log4net> 相关文章: