如何强制log4net在日期模式中尊重当前的文化?

问题描述

我正在将区域性设置为德语的计算机上运行控制台应用程序。我想在日志文件的所有消息中包括日期和时间,因此我正在使用字符串格式程序“ 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 (将#修改为@)