gpt4 book ai didi

c# - Log4Net:以编程方式指定多个记录器(具有多个文件附加程序)

转载 作者:IT王子 更新时间:2023-10-29 04:06:19 24 4
gpt4 key购买 nike

如何(以编程方式,无需 xml 配置)使用 Log4Net 配置多个记录器?我需要它们写入不同的文件。

最佳答案

This thread at the log4net Dashboard details an approach .

总结一下,希望不要扯掉太多代码:

using log4net;
using log4net.Appender;
using log4net.Layout;
using log4net.Repository.Hierarchy;

// Set the level for a named logger
public static void SetLevel(string loggerName, string levelName)
{
ILog log = LogManager.GetLogger(loggerName);
Logger l = (Logger)log.Logger;

l.Level = l.Hierarchy.LevelMap[levelName];
}

// Add an appender to a logger
public static void AddAppender(string loggerName, IAppender appender)
{
ILog log = LogManager.GetLogger(loggerName);
Logger l = (Logger)log.Logger;

l.AddAppender(appender);
}

// Create a new file appender
public static IAppender CreateFileAppender(string name, string fileName)
{
FileAppender appender = new
FileAppender();
appender.Name = name;
appender.File = fileName;
appender.AppendToFile = true;

PatternLayout layout = new PatternLayout();
layout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
layout.ActivateOptions();

appender.Layout = layout;
appender.ActivateOptions();

return appender;
}

// In order to set the level for a logger and add an appender reference you
// can then use the following calls:
SetLevel("Log4net.MainForm", "ALL");
AddAppender("Log4net.MainForm", CreateFileAppender("appenderName", "fileName.log"));

// repeat as desired

关于c# - Log4Net:以编程方式指定多个记录器(具有多个文件附加程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/308436/

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