C# 使用运行时确定的不同文件名创建RollingFileAppender的多个实例

C# 使用运行时确定的不同文件名创建RollingFileAppender的多个实例,c#,log4net,C#,Log4net,我想为在服务器上创建的每个会话(不是web服务器会话)创建一个滚动日志文件。我想使用会话名称作为日志文件名的一部分 每个会话都有一个标识符,该标识符部分由连接客户端发送的信息组成,因此在创建新会话之前,无法知道新会话将使用什么名称。将创建的会话数不是确定的-在一周内可能在1-50之间 我已经看到一个StackOverflow的答案,详细说明了一种方法,我想我可以让它做我需要的事情。但是,是否可以使用标准的log4net RollingFileAppender文件配置和更少/无代码来实现这一点 如

我想为在服务器上创建的每个会话(不是web服务器会话)创建一个滚动日志文件。我想使用会话名称作为日志文件名的一部分

每个会话都有一个标识符,该标识符部分由连接客户端发送的信息组成,因此在创建新会话之前,无法知道新会话将使用什么名称。将创建的会话数不是确定的-在一周内可能在1-50之间

我已经看到一个StackOverflow的答案,详细说明了一种方法,我想我可以让它做我需要的事情。但是,是否可以使用标准的log4net RollingFileAppender文件配置和更少/无代码来实现这一点

如果您使用ndc(嵌套诊断上下文),就像我对上一个问题的回答一样,那么就没有必要使用全局属性。数据保存在线程上


我已经好几年没有使用log4net了,但我隐约记得很久很久以前我就做过类似的事情。我所做的是将log4net.config.xml文件读入一个xml文档对象,操作xml,然后再次将其写回磁盘。如果你对这种方法非常感兴趣,我可能会在一些旧文件中找到详细信息。谢谢你的建议,我可以看看如何工作。我想如果我走的是一条相当手工的道路,我也可以在代码中创建appender,这样我就可以把它们指向我想使用的任何文件。我一定会喜欢这种不加评论的驾车向下投票。如果我没记错的话,修改XML文件的优点是它允许一些管理员交互。管理员可以看到系统正在做什么或试图做什么,并可以更改触发级别。我想。但我最终放弃了log4net,并编写了自己的小日志模块。谢谢你的建议。NDC能否用于动态确定追加器的文件名?我没有试图改变文件的内容,我只是尝试为不同的会话创建一个新文件。顺便说一句,你链接到的最后一个问题来自用户3729645,不是我。