gpt4 book ai didi

.net - 使用 Log4Net 以编程方式强制创建新的日志文件

转载 作者:行者123 更新时间:2023-12-04 07:39:37 27 4
gpt4 key购买 nike

注意:我阅读了这个问题和答案,但它不适用于我想要的:Log4Net: Programmatically specify multiple loggers (with multiple file appenders)

我有一个 WCF 服务,它是“问答”式服务。它获取输入并发送输出。它根本不持久。

我需要将每个问答 session 记录在一个单独的文件中。

我有一个 Appender(目前是 RollingAppender)。

有没有办法为每次调用我的 WCF 服务启动一个新的日志文件?

注意:我使用的是 XML 布局,其想法是可以解析日志的输出并以图形方式显示(稍后的功能)。有点像“查询计划”。这是我需要将它们放在单独的文件中的另一个原因。

注意:如果需要其他原因,Log4Net XmlLayoutBase 在应用程序关闭之前不会删除 xml 页脚。对于 IIS 中托管的 WCF 服务,这并不是真正的计划事件。

最佳答案

这似乎对我有用:

public static void StartNewFile(this ILog log, string newFileName)
{
Logger logger = (Logger) log.Logger;

while (logger != null)
{
foreach (IAppender appender in logger.Appenders)
{
FileAppender fileAppender = appender as FileAppender;
if (fileAppender != null)
{
fileAppender.File = newFileName;
fileAppender.ActivateOptions();
}
}
logger = logger.Parent;
}
}

它需要以下引用资料:
using log4net;
using log4net.Appender;
using log4net.Repository.Hierarchy;

关于.net - 使用 Log4Net 以编程方式强制创建新的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com