同一个Log4net文件中的多个appender

时间:2012-03-21 11:52:40

标签: log4net

如何在同一个log4net配置文件中使用多个appender?还提供了如何在C#代码中动态选择appender来写日志。

1 个答案:

答案 0 :(得分:2)

您可以非常轻松地配置多个appender。例如:

<appender name="ConsoleAppender" ...
   ...
</appender>

<appender name="RollingFileAppender" ...
   ...
</appender>

<root>
   <level value="ALL" />
   <appender-ref ref="ConsoleAppender" />
   <appender-ref ref="RollingFileAppender" />
</root>

第二部分更难回答:想法不是选择一个appender并写入它。通常,您使用记录器,只需在适当的日志级别编写您认为有用的任何内容。您不关心将日志消息写入的位置:这是由系统管理员决定的(恕我直言)。

实际上可以为不同的记录器使用不同的appender。系统管理员可能决定将YourApp.Security命名空间中的所有错误记录到SMTP appender,而其余的只是转到数据库或文件。有关记录器的更多信息可以在这个优秀的教程中找到: http://www.beefycode.com/post/Log4Net-Tutorial-pt-5-Using-Logger-Objects.aspx

然而,可以在代码中创建appender(可以找到示例代码here),但问题是你是否真的想要这样做。示例:如果您想在某些情况下发送电子邮件,我建议不要使用log4net。相反,您只需在自己的代码中创建和发送电子邮件。