【发布时间】:2020-05-04 08:41:56
【问题描述】:
我有一个 .NET Core 3.1 Web 服务并使用 NLog 4.7.0 进行日志记录。我目前正在使用文件日志记录和 filebeat 将消息从日志文件获取到 ELK。
我想为我的FileTarget 创建一个包装器目标。实际目的是将单个 Web 请求的所有日志合并为单个日志消息,但这可能不是重点。
我想从NLog.Targets.Wrappers.WrapperTargetBase 继承,但是Write(LogEventInfo logEvent) 方法是密封的。这是否意味着我只能对 WrapperTargets 使用异步日志记录?
这会影响我设置日志记录配置的方式吗?请注意,我使用的是配置文件,而不是配置 API。
我现有的FileTarget是这样的:
"appFile": {
"type": "File",
"fileName": "c:\\wwwlogs\\MyWebApp\\Combined.log",
"archiveFileName": "c:\\wwwlogs\\MyWebApp.Web\\archives\\Combined.{#}.log",
"archiveEvery": "Day",
"archiveNumbering": "Rolling",
"maxArchiveFiles": "7",
"layout": "${longdate}|${aspnet-request-ip}|${aspnet-TraceIdentifier}|${aspnet-user-identity}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}"
}```
【问题讨论】: