可以关闭内置日志消息吗?

时间:2016-06-16 21:19:34

标签: servicestack

使用

配置日志记录
LogManager.LogFactory = new Log4NetFactory(configureLog4Net: true);

它可以在任何地方使用

ILog log = LogManager.GetLogger("foo);
log.Error("foo");

我明白了。问题是服务堆栈对各种内置内部消息使用相同的记录器。例如,如果为不存在的路由提交了请求,则服务堆栈记录" ServiceStack.Host.Handlers.NotFoundHttpHandler - :: 1请求未找到:"。

有没有办法禁用或关闭这些内部消息?

1 个答案:

答案 0 :(得分:1)

如果你正在使用Log4Net,你应该能够filter Log messages by type,否则可以通过覆盖在AppHost中控制一些ServiceStack的内部日志记录:

public override void OnLogError(Type type, string message, Exception innerEx=null)
{
    if (!SuppressLogs(type))
        base.OnLogError(type, message, innerEx);
}

我刚刚更改了NotFoundHttpHandler来路由邮件,以便将错误消息从this commit发送到OnLogError(),这样您就可以通过覆盖上述方法来抑制邮件。

此更改可从v4.0.61获得,现在为available on MyGet