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
>
查看全文
相关阅读:
超级好用的excel导出方法,比phpexcel快n倍,并且无乱码
PHP生成随机数;订单号唯一
php判断检测一个数组里有没有重复的值
修改git 提交的用户名和用户Email命令
利用 PHP CURL zip压缩文件上传
Linux 重启 PHP-FPM 命令
Postgresql 时间串转换格式
rollup node.js 打包工具
PHP正则表达式提取html超链接中的href地址
解决Ubuntu系统下 mysql 远程连接失败的问题 ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xx.xx' (110)
原文地址:https://www.cnblogs.com/RChen/p/217832.html
最新文章
Centos下普通用户设置sudo权限
管理菜单 结贴回复 来自 202.112.36.253 的回复: TTL 传输中过期
TTL是什么意思?
Linux服务器中创建Oracle数据库实例
HTML+CSS:圆形和圆角图片格式
Kafka创建Topic时如何将分区放置到不同的Broker中
kafka在zookeeper上的节点信息和查看方式
数据库高并发解决方案(二)部署优化
数据库高并发解决方案(一)查询优化
Nginx+Php-fpm运行原理 代理与反向代理
热门文章
call JSON.parse JSON.stringify typeof 的使用及严格模式this的使用
match 和 search 和 indexOf 查找及 正则表达式的 exec 和 test 用法
PHP冒泡排序
CURL shell 使用
mysql 导出表结构和表数据 mysqldump用法
Ubuntu下设置 nginx php-fpm 自动启动 rc.local
ubuntu server设置时区和更新时间
ubuntu编译PCRE时出现 line 81: aclocal-1.14: command not found错误
Call to undefined function imagecreatefromjpeg() 让GD支持JPEG格式的图片扩展
Phalcon框架的编译安装 内存不足的解决办法
Copyright © 2011-2022 走看看