Log4Net 日志文件关闭的问题

CreekHe 2008-06-15 11:50:46
用C#开发了一个Windows服务程序,其中服务程序使用了Log4NET记录日志,如果服务程序停止后,再打开会提示错误“本地计算机上的CDMSServer服务启动后又停止了。。”,只有删除Log4NET的日志文件,或者过5分钟后再启动服务程序就可以正常启动了,我想应该是Log4NET的日志文件在服务停止后没有自动关闭引起的,请问有什么办法在停止服务的时候关闭Log4NET的日志文件?

...全文
786 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanwang314 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hfhf 的回复:]
ILog log = log4net.LogManager.GetLogger(typeof(StockFactorRanking));
log.Info("messaGe");
log.Logger.Repository.Shutdown();
//上面这句就能释放控制。
[/Quote]


正解。。。。。。。
hfhf 2010-06-18
  • 打赏
  • 举报
回复
ILog log = log4net.LogManager.GetLogger(typeof(StockFactorRanking));
log.Info("messaGe");
log.Logger.Repository.Shutdown();
//上面这句就能释放控制。
skyaspnet 2010-01-31
  • 打赏
  • 举报
回复
学习
快乐乔巴 2009-11-27
  • 打赏
  • 举报
回复
以前我也遇到过这个问题 无法修改log文件
一般log4net的初始化都是在Global.asax的Application_Start里开始的
我为了测试 每次在Global.asax中修改代码或者直接什么也不修改 直接Ctrl+S保存一下
log文件进程就自动释放了
当然不紧紧是log文件 Global.asax中定义的静态变量都会被初始化
大家可以用我方法试验一下
Taiyangchen 2009-11-27
  • 打赏
  • 举报
回复
用线程试试呢
gavinluo 2009-11-27
  • 打赏
  • 举报
回复
我也遇到了相同问题,在程序启动后,这个日志文件不能被修改,删除操作。不知道如何解决。因为我程序中会有另外的一个操作删除这个日志文件。正在研究资料中。。。。。
lincnl 2008-10-06
  • 打赏
  • 举报
回复
和其他同事讨论了一下这个问题,基本上认为是应用程序在关闭后,log进程仍持有对文件的操作,在web应用程序中将IIS关闭(注意:如果是XP系统的IIS5.1要关闭inetinfo.exe进程)后可以释放对log文件的持有操作,可以删除文件。Windows服务程序可以试试手动关闭进程后看看是否还有你所说的问题
lincnl 2008-10-06
  • 打赏
  • 举报
回复
我写的是WEB应用,用log4net生成的日志文件不允许我删除,报“文件正在被另一个人或程序使用,关闭任何可能使用这个文件的程序,重新试一次”,我把IIS停了都没戏,应该是有进程没有关闭。如果在开发调试期可以重新生成应用,可发布的版本就完了。哪位大虾有好的方法,请指教!!

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧