Log4net appender 用于web服务的Log4Net

Log4net appender 用于web服务的Log4Net,log4net-appender,Log4net Appender,Log4Net对于web应用程序是安全的,因为我知道Log4Net是线程安全的,但它不是进程安全的。在这种情况下,我们不能使用单个文件来编写日志。还有其他解决方案吗?假设您使用的是文件追加器,那么默认行为确实不会像您所说的那样是进程安全的。不过,还有两种选择 从Log4Net文档: FileAppender通过LockingModel属性支持可插入文件锁定模型。FileAppender.ExclusiveLock实现的默认行为是在关闭此appender之前获取文件的独占写锁。替代模型仅在appe

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

假设您使用的是文件追加器,那么默认行为确实不会像您所说的那样是进程安全的。不过,还有两种选择

从Log4Net文档:

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

配置行如下所示:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file type="log4net.Util.PatternString" value="%property{LogName}" />
log4net.GlobalContext.Properties["LogName"] = fullPathToLogfile + afileName ; 
var configInfo = new FileInfo("configfilename.config");    
log4net.Config.XmlConfigurator.Configure(configInfo);