我正在使用.NET common logging infrastructure V2.0。我得到了一个ILog对象:
ILog log = LogManager.GetLogger("myLogName");
我不明白日志名称的含义和效果。 如果我在整个过程中使用相同的名称是否重要,或者我可以只为每个类使用LogManager.GetCurrentClassLogger()
(是的,我知道会带来性能损失)。
P.S: 我可能会使用log4net& ConsoleOutLogger。
答案 0 :(得分:0)
我相信名字意味着你想要的意思。在不同的地方使用不同的名称有两个主要原因:
答案 1 :(得分:0)
请参阅下面的GetLogger实现。名称特定于具体记录器。
public sealed class LogManager
{
...
public static ILoggerFactoryAdapter Adapter { get; set; }
public static ILog GetLogger(string name)
{
return Adapter.GetLogger(name); // Adapter is ILoggerFactoryAdapter
}
}
public interface ILoggerFactoryAdapter
{
// Methods
ILog GetLogger(string name);
ILog GetLogger(Type type);
}
对于log4net适配器实现看起来像这样
public class Log4NetLoggerFactoryAdapter : ILoggerFactoryAdapter
{
...
public ILog GetLogger(string name)
{
return new Log4NetLogger(LogManager.GetLogger(name)); // LogManager - is log4net.Logmanager
}
}