1

由于一些技术原因,我们使用 serilog 将日志和错误文件分成两个单独的文件。在这种情况下,不会单独记录来自组件空间跟踪的日志和错误。

"Serilog": {
        "MinimumLevel": {
            "Default": "Debug",
            "Override": {
                "Default": "Debug",
                "Microsoft": "Information",
                "Microsoft.Hosting.Lifetime": "Information",
                "ComponentSpace": "Debug"
            }
        },
        "WriteTo": [
            {
                "Name": "Logger",
                "Args": {
                    "configureLogger": {
                        "Filter": [
                            {
                                "Name": "ByIncludingOnly",
                                "Args": {
                                    "expression": "(@l in ['Error', 'Fatal', 'Warning'])"
                                }
                            }
                        ],
                        "WriteTo": [
                            {
                                "Name": "File",
                                "Args": {
                                    "path": "Logs/WebApp/Errors/error_.log",
                                    "outputTemplate": "{Timestamp:o} [{Level:u3}] ({SourceContext}) {Message}{NewLine}{Exception}",
                                    "rollingInterval": "Day"
                                }
                            }
                        ]
                    }
                }
            },
            {
                "Name": "Logger",
                "Args": {
                    "configureLogger": {
                        "Filter": [
                            {
                                "Name": "ByIncludingOnly",
                                "Args": {
                                    "expression": "(@l in ['Information', 'Debug'])"
                                }
                            }
                        ],
                        "WriteTo": [
                            {
                                "Name": "File",
                                "Args": {
                                    "path": "Logs/WebApp/Informations/log_.log",
                                    "outputTemplate": "{Timestamp:o} [{Level:u3}] ({SourceContext}) {Message}{NewLine}{Exception}",
                                    "rollingInterval": "Day"
                                }
                            }
                        ]
                    }
                }
            }
        ],
        "Enrich": [
            "FromLogContext",
            "WithMachineName"
        ],
        "Properties": {
            "Application": "MultipleLogFilesSample"
        }
    },

请参考以下正在使用的 serilog 配置

我还按照下面的链接启用了跟踪, https ://www.componentspace.com/Forums/7936/Enabling-SAML-Trace?Keywords=serilog 当我的配置名称与“ Serilog:Async ”相同时效果很好",但我的问题是我使用名称“Logger”将单个记录器拆分为日志和错误,因此在这种情况下,组件空间跟踪不起作用。

注意:您好,感谢您的回复,我在 appsettings.json 文件中没有这些配置,而是在自定义 json 文件中拥有这些配置,并且该自定义 json 文件的路径已添加到 appsettings.json 文件中

下面的代码片段用于从 custon 文件加载日志配置

 var configuration = new ConfigurationBuilder().SetBasePath(KestrelServerOptionsExtensions.GetBasePath()).AddJsonFile("appsettings.json").Build();
        string ConfigPath = configuration.GetSection("AppSettings:ProlaborateConfigPath").Value;//ConfigPath
        var Logconfiguration = new ConfigurationBuilder().AddJsonFile(ConfigPath).Build();
        var functionDependencyContext = DependencyContext.Load(typeof(Startup).Assembly);
        Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Logconfiguration, "WebApp:Logger", dependencyContext: functionDependencyContext).CreateLogger();

谁能帮我解决这个问题?

4

0 回答 0