每当我在 WCF 服务中执行某个特定过程时,我都会写出一个单独的日志。我已经使用 log4net 为整个应用程序提供了标准日志。我是否应该为特定进程添加附加程序和过滤器,然后将其删除?此过程涉及处理已上传的文件。还有其他想法吗???
最佳答案
我以前做过类似的事情,我们使用了这样的代码:
奥利
class Program
{
static void Main(string[] args)
{
log4net.Config.BasicConfigurator.Configure();
var file = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid() + ".log");
var log = InitialiseLogToFile(file);
log.Info("Made it here!");
log.Error("Made it here!");
var file2 = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid() + ".log");
var log2 = InitialiseLogToFile(file2);
log2.Info("Made it here!");
log2.Error("Made it here!");
}
public static ILog InitialiseLogToFile(string file)
{
LogManager.ResetConfiguration();
var hierarchy = (Hierarchy)LogManager.GetLoggerRepository();
var patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
patternLayout.ActivateOptions();
var appender = new FileAppender {File = file, AppendToFile = true, Layout = patternLayout};
appender.ActivateOptions();
var logger = (Logger)hierarchy.GetLogger(file);
logger.AddAppender(appender);
hierarchy.Configured = true;
return LogManager.GetLogger(file);
}
}
关于c# - log4net ....单独的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309037/