问题描述
我正在将区域性设置为德语的计算机上运行控制台应用程序。我想在日志文件的所有消息中包括日期和时间,因此我正在使用字符串格式程序“ G”。 当我使用Console.WriteLine将当前日期写入控制台时,它会按预期以德语格式化。 为什么log4net的日期改为美国文化的格式,如何更改它以尊重当地文化?
Program.cs
using System;
using System.IO;
using System.Reflection;
using log4net;
using log4net.Config;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var repo = LogManager.CreateRepository(
Assembly.GetEntryAssembly(),typeof(log4net.Repository.Hierarchy.Hierarchy));
XmlConfigurator.ConfigureAndWatch(repo,new FileInfo("log4net.config"));
var logger = LogManager.GetLogger(Assembly.GetEntryAssembly(),"Program");
logger.Info("Hello World!");
Console.WriteLine($"{DateTime.Now:G} Hello World!");
}
}
}
log4net.config
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
</root>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{G} %message%newline" />
</layout>
</appender>
</log4net>
控制台输出
08/24/2020 13:20:19 Hello World!
24.08.2020 13:20:19 Hello World!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)