c# - log4net ....单独的日志文件

标签 c# asp.net wcf log4net

每当我在 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/

相关文章:

c# - WPF 替换原始复选框中的复选标记

c# - C# 中的向量化运算符

c# - WCF 已超出传入消息的最大消息大小配额 (65536)

c# - 将凭据传递给 Sql Report Server 2008

c# - 使用此代码时在 c# 中索引超出范围

c# - 从 signalr 4.6 客户端连接到 signalr 核心服务器

asp.net - TeamCity 构建任务以自动启动 ASP.NET 网站

html - html 元标记的顺序重要吗?

c# - Windows Server 2012 和 IIS 8.5 上的自定义 ServiceHostFactory 失败

c# - WCF UserNamePasswordValidator - 验证后访问凭据