log4net记录器配置

log4net记录器配置

问题描述:

是否可以根据配置设置记录器。我有一个网络应用程序 使用框架。该框架是可扩展的并具有记录器。 当我登录时,当前记录器被设置为框架类。log4net记录器配置

是否有可能,我可以配置我的web应用程序,并设置记录器的web应用程序 loggerForWebApp和一个控制台应用程序(它是使用 相同的框架),以loggerForConsoleApp记录器?

+0

这是可能的,因为我在我的答案描述。但为什么你会在这两个应用程序之间共享log4net配置?你可以从你的网络应用程序中分离出控制台应用程序,并且仍然能够利用你的框架,或者它被绑定到web应用程序中吗? – 2009-12-23 08:36:54

+0

不,我不会在2个应用程序之间分享它。我想在运行时从2个不同的app/web.configs中选择它们,它们会有不同的值。 – ram 2009-12-23 11:30:16

+0

没错。那么为什么你需要在控制台app.config中的webapp记录器或web.config中的consoleapp记录器?猜猜我没有看到你的问题的整个背景... – 2009-12-23 12:54:07

除了根记录器(它必须始终在那里),您可以命名自己的appender,裁判和水平记录器。

例如,你可以有这样的事情:

<root> 
.... 
</root> 

<logger name="loggerForWebApp"> 
    <level value="WARN" /> 
    <appender-ref ... /> 
</logger> 

<logger name="loggerForConsoleApp"> 
    <level value="WARN" /> 
    <appender-ref ... /> 
</logger> 

在代码中,你会被他们的名字召唤这些记录器:

var log = LogManager.GetLogger("loggerForWebApp"); 

绝对是这样的,这是关于log4net的伟大之处之一:它可以注销到各种各样的记录器。

有关appender的示例,请参阅here。可能最常用的是RollingFileAppender,但ConsoleAppender对于控制台应用程序可能非常方便。或者,TraceAppender可以向标准.NET跟踪侦听器写出进一步重定向(或在Visual Studio的调试输出窗口中显示)。

创建您自己的,执行IAppender

详情后

+0

@Ram没有询问appenders,他问的是伐木工。 log4net世界中两件不同的事情。 – 2009-12-23 08:30:30