【问题标题】:How to enable logging for Redlock.Net?如何为 Redlock.Net 启用日志记录?
【发布时间】:2018-05-06 08:36:15
【问题描述】:
我正在从下面的位置使用 redlock 库。
https://github.com/samcook/RedLock.net
以下命令仅在生产环境中返回超时,并且它适用于其他环境。
RedLockFactory.Create
使用 ILSpy 我可以看到他们在处理过程中记录了一些行,GetLogger() 方法在下面的代码中使用。
new StackFrame(1, false).DeclaringType;
我希望通过一些配置更改,我可以为此启用日志记录,这样我们就不必重新部署任何构建。但我不知道怎么做。你能帮忙吗?
【问题讨论】:
标签:
c#
redis
log4net
liblog
【解决方案1】:
要使用 log4net,请添加以下配置启用日志。
<appender name="MyRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="$(dataFolder)/logs/Mylog.txt" />
<appendToFile value="true"/>
<rollingStyle value="Size" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<header value="DateTime | Thread | Level | ClassName | Message " />
<conversionPattern value="%date | %thread | %-5level | %logger | %message%newline" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date | %thread | %-5level | %logger | %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="MyRollingFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
您可以查看更多示例here。
【解决方案2】:
当您想使用 RedLockFactory.Create 创建 RedLock 时,可以将 loggerFactory 对象传递给此方法。
var loggerFactory = LoggerFactory.Create(b => b.AddConsole()) ;
var lock = RedLockFactory.Create(endpoints, loggerFactory);
如果您需要更多信息,可以设置日志记录最低级别。
var loggerFactory = LoggerFactory.Create(b => b.SetMinimumLevel(LogLevel.Trace).AddConsole());