4Manuals

  • PDF Cloud HOME

如何在Akka.Event.LogMessage中修复“输入字符串的格式不正确” Download

    网络核心:查找实体框架核心的主键和反射 在jupyter上使用pandas_gbq时删除所有日志 Fluentd在工作,但在elastcisearch上未创建索引 无法在EF Core 2.0中生成DBContext Diagram 在Serilog和Microsoft.Extensions.Logging.LoggerExtensions Cron日志未填充CMD 尝试在Ubuntu上的PowerShell Core中执行内联命令时,“术语'-Command'不被识别为cmdlet的名称” 使用Keycloak进行dotnet Web API身份验证 无法在Ubuntu上运行的Rider 2019.3中从私有源还原nuget软件包 出现错误,例如在尝试下载单词时无法访问关闭的流

我正在将Akka.Net与Akka.Logger.Serilog一起使用。在我的设置中,我使用 loggers = ["Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"]

在Program.cs中,我使用:

Host.CreateDefaultBuilder(args)
    .UseServiceProviderFactory(new AutofacServiceProviderFactory())
    .UseSerilog((ctx, config) =>
             config.ReadFrom.Configuration(ctx.Configuration), true);

在Startup.cs中,我尝试了

services.AddSingleton<ILoggingAdapter, SerilogLoggingAdapter>(); 

在演员中,我使用以下命令来初始化记录器:

ILoggingAdapter _logger = Context.GetLogger(); // and Logger.GetLogger(Context);
// then
_logger.Info("Message loaded: {@Message}", message);
// and this _logger.Info("Message loaded: {Message}", message);

以及上述各种其他组合,但每次

在控制台中,我看到了一些自己的日志,但是到处都看到以下消息:

[ERROR][12/30/2019 12:43:47][Thread 0010][akka://MyActorSystem/system/log1-DefaultLogger] Input string was not in a correct format. Cause: System.FormatException: Input string was not in a correct format.
   at System.Text.StringBuilder.FormatError()
   at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.Format(String format, Object[] args)
   at Akka.Event.DefaultLogMessageFormatter.Format(String format, Object[] args)

还有其他步骤来确保Akka.net使用正确的日志记录适配器吗?

如何控制默认记录器使用什么?

1 个答案:

答案 0 :(得分:0)

最后,有两件事:

  1. 从JSON加载HOCON的挑战已解决: https://stackoverflow.com/a/47997504/474702请记住, 很重要,所以我自由地使用[JsonProperty("property-name")]。
  2. 您需要在Program.cs
  3. 中正确加载Serilog

参见下文:

Host.CreateDefaultBuilder(args)
    .UseServiceProviderFactory(new AutofacServiceProviderFactory())
    .UseSerilog((ctx, config) => 
        config
            .ReadFrom.Configuration(ctx.Configuration)
            .Enrich.FromLogContext())
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    });

一旦工作,我就能在日志中看到更改:

[DEBUG][12/30/2019 17:02:38][Thread 0005][akka://MyActorSystem/system/log1-SerilogLogger] Started (Akka.Logger.Serilog.SerilogLogger)
[INFO][12/30/2019 17:02:38][Thread 0005][[akka://MyActorSystem/system/log1-SerilogLogger#121623868]] SerilogLogger started



Similar searches
    C#,Python和Node.js中的微小函数沙箱(受委托的代码执行) 运行Docker时出错,连接到SQL数据库时出错 图片无法上传 共同打印数组名称 如何在Shopware 6中启用php错误显示?