首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web服务的Log4Net

web服务的Log4Net
EN

Stack Overflow用户
提问于 2012-09-10 00:20:28
回答 1查看 385关注 0票数 0

Log4Net对于web应用程序来说是安全的,因为我知道log4net是线程安全的,但它不是进程安全的。在这种情况下,我们不能使用单个文件来写入日志。有没有其他的解决方案?

EN

回答 1

Stack Overflow用户

发布于 2012-10-31 08:45:34

假设您正在使用文件附加器,那么正如您所说的,默认行为将不是进程安全的。然而,还有另外两种选择。

在Log4Net文档中:

通过LockingModel属性,FileAppender支持可插拔的文件锁定模型。由FileAppender.ExclusiveLock实现的默认行为是获取文件的独占写锁,直到关闭此附加器。替代模型仅在附加器正在写入日志记录事件(FileAppender.MinimalLock)或使用命名的系统范围互斥锁(FileAppender.InterProcessLock)进行同步时才持有写锁。

配置行如下所示:

代码语言:javascript
复制
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

我认为独占是性能最好的。

尽管您没有这样要求,但您可以在配置中使用以下语法以编程方式设置文件/路径:

代码语言:javascript
复制
<file type="log4net.Util.PatternString" value="%property{LogName}" />

然后在您的设置中使用以下命令设置LogName vi C#:

代码语言:javascript
复制
log4net.GlobalContext.Properties["LogName"] = fullPathToLogfile + afileName ; 
var configInfo = new FileInfo("configfilename.config");    
log4net.Config.XmlConfigurator.Configure(configInfo);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12340736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档