EventLogFactory 正在为来自 OrmLite 或 Redis 的每个 DEBUG 语句编写信息日志,只需从这一行代码开始:
LogManager.LogFactory = new EventLogFactory("MyApplication");
例如:
An error occurred in the application: MyApplication
Exception: DEBUG: SELECT "Id", "Name" FROM "MyTable"
An error occurred in the application: MyApplication
Exception: DEBUG: S: GET urn:iauthsession:upuuVGyYt48yoMYjdaBB
此服务每分钟处理数千个 Redis 操作,因此记录所有这些操作非常麻烦。
即使我不添加任何 ServiceExceptionHandlers 或 UncaughtExceptionHandlers 也会发生这种情况;我没有任何自己的日志记录代码处于事件状态。
我看到 EventLogFactory 将其 IsDebugEnabled 标志设置为 true,但我找不到在源代码中引用它的任何相关位置。尽管如此,我尝试添加此(冗余)行,但没有效果:
SetConfig(new HostConfig { DebugMode = false });
如何阻止这些 DEBUG 日志?
我刚刚修改了 EventLogFactory
构造函数以接受 debugEnabled:false
属性,这将阻止记录调试消息:
LogManager.LogFactory = new EventLogFactory("MyApplication", debugEnabled:false);
此更改可从 ServiceStack 的 v4.0.41+ 版本获得,现在是 available on MyGet .
我是一名优秀的程序员,十分优秀!