正如stuartd所说,您不能将DateTime与时区本地格式化。然而,您可以做的是创建自定义
PatternLayoutConverter
将使用
Convert
方法此处是
DatePatternConverter
:
protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
try
{
this.m_dateFormatter.FormatDate(loggingEvent.TimeStamp, writer);
}
catch (Exception exception)
{
LogLog.Error("DatePatternConverter: Error occurred while converting date.", exception);
}
}
这个
m_dateFormatter
字段由选项初始化,您可以通过实现
IOptionHandler
界面
拥有转换器后,通过在布局标记中声明它,将其添加到布局中
<layout ...>
<converter>
<name value="myDateWithTimeZone" />
<type value="MyApp.LogConverters.MyConverter" />
</converter>
</layout>