zoukankan
html css js c++ java
如何在 Windows 服务中正确使用 log4net
前几天写了一个 Windows 服务程序,其中使用 log4net 却总是失败。
不论 log4net 的配置写在 app.config 里,还是独立的 config 文件里,都是一样。
今天终于发现原来是在服务里不能正确定位到这个配置文件所致。
于是经过尝试之后,发现关键在于如下代码中获取当前 exe 所在目录并用于得到 config 文件的路径。按这个写法就可以正确输出日志了:
public
class
Service1 : ServiceBase
{
//
进程的主入口点
private
static
void
Main()
{
string
assemblyFilePath
=
Assembly.GetExecutingAssembly().Location;
string
assemblyDirPath
=
Path.GetDirectoryName(assemblyFilePath);
string
configFilePath
=
assemblyDirPath
+
"
\\log4net.config
"
;
DOMConfigurator.ConfigureAndWatch(
new
FileInfo(configFilePath));
ServiceBase[] ServicesToRun;
ServicesToRun
=
new
ServiceBase[]
{
new
Service1()}
;
ServiceBase.Run(ServicesToRun);
}
//
其他略
}
其他的不多写了,附带我的 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
>
查看全文
相关阅读:
MD支持新标签跳转
线上问题cpu100处理记录
OpenShift 4.6方式下OperatorHub的变化
OpenShift 4.5.7 版本基础镜像下载
GLPI企业使用(一),连接AD域,LDAP登录。
GLPI配置文件说明:默认权限组
企业服务器规划
港股通转托管
mui实现下拉刷新以及click事件无法响应问题
asp.net core+websocket实现实时通信
原文地址:https://www.cnblogs.com/RChen/p/217832.html
最新文章
JS 中如何判断字符串类型的数字
vue项目防御XSS
登录自动填充
vue原生input上传文件
el-table多选搜索
vue文件下载
Flag counter被博客园禁了的解决方法(短网址方案)
[转]Java复制Map对象(深拷贝与浅拷贝)
navicat用IP远程连接mysql超级慢
springboot解决utf8mb4类型连接
热门文章
[转]java如何保证一个方法只能执行一次
Json字符串转Json对象及Java对象
springboot中的resttemplate使用了jackson序列化遇到的坑
@RestControllerAdvice 统一异常处理
为什么现在微服务应用里面,配置中心的地址要填多个,而不是填F5地址?
微服务架构,新增一个实例,是否存在消费者到服务提供者防火墙不通的问题?
Java设计模式——观察者模式的灵活应用
SpringBoot 2.4.0跨域问题
MySQL查询:Group By 后取出每一组中最大的数据
前后端跨域问题
Copyright © 2011-2022 走看看