标签: serilog-sinks-file

Serilog ThreadId始终输出为1

我在 outputTemplate 中有一个 ThreadId,但日志始终将其记录为 1。我有多个应用程序实例同时运行到同一个日志中,因此希望我可以根据 ThreadId 分离实例。

谁能建议如何解决这个问题?ThreadName 在应用程序设置一些内容并识别其运行的区域后分配,因此不是最好的分隔符。此外,一个区域中可以同时运行多个功能。因此需要 ThreadId

Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(builder.Build())
            .Enrich.FromLogContext()
            .Enrich.WithThreadId()
            .Enrich.WithThreadName()
            .WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] <{ThreadName}> <{ThreadId}> {Message:lj}{NewLine}{Exception}")      
            .WriteTo.File(@".\log\log.txt", 
                             rollingInterval: RollingInterval.Day, 
                             shared: true,
                             outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] <{ThreadName}> <{ThreadId}> {Message:lj}{NewLine}{Exception}")
            .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

日志输出

2021-04-09 06:30:09.059 [INF] <blackstone> <1> Action : Task A
2021-04-09 06:30:09.059 [INF] <wavell> <1> Action : Task A
2021-04-09 06:30:09.060 [INF] <forest> <1> Action : Task A
2021-04-09 06:30:09.130 [INF] <wavell> <1> Loading CentreDetails
2021-04-09 06:30:09.130 [INF] <forest> <1> Loading CentreDetails …
Run Code Online (Sandbox Code Playgroud)

c# logging serilog-sinks-file

5
推荐指数
2
解决办法
4893
查看次数

Serilog 未在生产服务器上创建日志文件

我创建了一个 C# .net5.0 控制台应用程序,在测试期间 Serilog 一直正常工作,记录到控制台和文件(同一文件夹;path=“log.txt”)。但是,当我在服务器上的应用程序上运行时,控制台和文件日志记录接收器都不起作用!我现在认为问题不在于接收器本身,而是 Serilog 实际上没有工作。

我尝试启用自我日志:

Serilog.Debugging.SelfLog.Enable(msg =>
    Console.WriteLine(msg)
);
Run Code Online (Sandbox Code Playgroud)

但即使在我的开发环境中的调试器中运行,Console.WriteLine(msg)行也永远不会被调用!

appsettings.json的如下:

{
"Serilog": {
    "MinimumLevel": {
        "Default": "Debug",
        "Override": {
            "Microsoft": "Information",
            "System": "Information"
        }
    },
    "WriteTo": [
        {
            "Name": "Console",
            "Args": {
                "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
                "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {NewLine}{Exception}"
            }
        },
        {
            "Name": "File",
            "Args": {
                "path": "log.txt",
                "rollingInterval": "Infinite",
                "outputTemplate": "{Timestamp:HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
                "shared": false
            }
        }
    ],
    "Enrich": [ "FromLogContext" ]
},

"Database": {
    "Server": "(local)",
    "Database": "ActivbaseLive" …
Run Code Online (Sandbox Code Playgroud)

serilog serilog-sinks-file

5
推荐指数
1
解决办法
4634
查看次数

使用serilog为单独的线程提供单独的日志文件

我有一个具有多个线程的 .Net Worker Service 应用程序。我想将每个线程记录到单独的文件中,以便更轻松地阅读日志。有什么想法来实现这个吗?

.net c# serilog serilog-sinks-file

1
推荐指数
1
解决办法
1415
查看次数

标签 统计

serilog-sinks-file ×3

c# ×2

serilog ×2

.net ×1

logging ×1