在 Metrolog 中记录当地时间
Logging in Local time in Metrolog
我的 Metrolog 输出看起来像是在 GMT 中记录的。我的时区是 GMT +5.30。设备上的时间设置正确。如何让 Metrolog 以当地时间登录?
示例日志:4|2017-05-15T05:05:36.6887812+00:00|TRACE|3|App|Analytics configured
您可以通过创建 class 扩展 MetroLog.Layouts.Layout 来更改跟踪布局,您可以在其中显示 DateTime 根据你的时区 :
public class CustomLayout : MetroLog.Layouts.Layout
{
/// <summary>
/// Create a formatted string based on given informations
/// </summary>
/// <param name="context"><see cref="LogWriteContext"/></param>
/// <param name="info"><see cref="LogEventInfo"/></param>
/// <returns>Formatted string to log</returns>
public override string GetFormattedString(LogWriteContext context, LogEventInfo info)
{
return $"{info.SequenceID}|{info.TimeStamp.LocalDateTime}|{info.Level}|{info.Logger}|{info.Message}|{info.Exception}";
}
}
并且不要忘记在初始化目标时使用此自定义布局。例如,如果您使用的是 DebugTarget,您应该执行如下操作:
var loggingConfiguration = new LoggingConfiguration { IsEnabled = true };
loggingConfiguration.AddTarget(LogLevel.Trace, LogLevel.Fatal, new DebugTarget(new CustomLayout()));
然后创建您的日志管理器:
var logManager = LogManagerFactory.CreateLogManager(loggingConfiguration);
我的 Metrolog 输出看起来像是在 GMT 中记录的。我的时区是 GMT +5.30。设备上的时间设置正确。如何让 Metrolog 以当地时间登录?
示例日志:4|2017-05-15T05:05:36.6887812+00:00|TRACE|3|App|Analytics configured
您可以通过创建 class 扩展 MetroLog.Layouts.Layout 来更改跟踪布局,您可以在其中显示 DateTime 根据你的时区 :
public class CustomLayout : MetroLog.Layouts.Layout
{
/// <summary>
/// Create a formatted string based on given informations
/// </summary>
/// <param name="context"><see cref="LogWriteContext"/></param>
/// <param name="info"><see cref="LogEventInfo"/></param>
/// <returns>Formatted string to log</returns>
public override string GetFormattedString(LogWriteContext context, LogEventInfo info)
{
return $"{info.SequenceID}|{info.TimeStamp.LocalDateTime}|{info.Level}|{info.Logger}|{info.Message}|{info.Exception}";
}
}
并且不要忘记在初始化目标时使用此自定义布局。例如,如果您使用的是 DebugTarget,您应该执行如下操作:
var loggingConfiguration = new LoggingConfiguration { IsEnabled = true };
loggingConfiguration.AddTarget(LogLevel.Trace, LogLevel.Fatal, new DebugTarget(new CustomLayout()));
然后创建您的日志管理器:
var logManager = LogManagerFactory.CreateLogManager(loggingConfiguration);