如何使用 NLog .NET Core 6 记录日志

问题描述 投票:0回答:1

我正在使用 NLog 来记录我的应用程序,我只遵循文档中的示例,但我无法理解一些事情,例如规则部分中的“logger”属性是什么?目前的值是“控制器和存储库”

我遇到的另一个问题是,当我执行指令 _logger.LogInfo("any log") 或 _logger.LogInformation("any log") 时,这些指令都没有记录在我的日志文件中,我做错了什么?我给你举个例子

Program.cs(加载nlog)

LogManager.Configuration = new NLogLoggingConfiguration(configuration.GetSection("NLog"));

builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Logging.AddNLog();

然后当我想在不同层使用日志时:

控制器:

[HttpPost]
[Route("register")]
public async Task<IActionResult> Register(RequestFilter filter)
{

    _logger.LogInformation("log test......."); //not work
    _logger.LogDebug("log debug test......."); //not work
    _logger.LogError("log error test......."); //not work

    //code.....

    return Ok("success");
 }

日志文件已生成,但它不记录我在整个应用程序中保存的任何日志

将结果记录在文本文件中:

2023-11-21 12:11:43.2474 信息消息模板自动格式化已启用 2023-11-21 12:11:43.3100 信息 注册目标 NLog.Targets.FileTarget(名称=文件) 2023-11-21 12:11:43.3286 信息 验证配置:TargetNames=文件,ConfigItems=19 ConfigSection=NLog 2023-11-21 12:12:35.7331 信息消息模板自动格式化已启用 2023-11-21 12:12:35.8335 信息 注册目标 NLog.Targets.FileTarget(Name=file) 2023-11-21 12:12:35.8638 信息 验证配置:TargetNames=文件,ConfigItems=19 ConfigSection=NLog 2023-11-21 12:13:40.4712 信息消息模板自动格式化已启用 2023-11-21 12:13:40.5965 信息 注册目标 NLog.Targets.FileTarget(名称=文件) 2023-11-21 12:13:40.6250 信息 验证配置:TargetNames=文件,ConfigItems=19 ConfigSection=NLog 2023-11-21 17:14:56.1217 信息消息模板自动格式化已启用 2023-11-21 17:14:56.4649 信息 注册目标 NLog.Targets.FileTarget(名称=文件) 2023-11-21 17:14:56.4834 信息 验证配置:TargetNames=文件,ConfigItems=19 ConfigSection=NLog 2023-11-21 17:14:56.8172 信息验证配置:TargetNames=file, ConfigItems=19 ConfigSection=NLog

我做错了什么?

logging nlog
1个回答
0
投票

如果您不理解现有的logging-rules,那么只需将其替换为:

{
  "NLog": {
    "throwConfigExceptions": true,
    "internalLogLevel": "Info",
    "internalLogFile": "${basedir}/logs/logs-nlog.txt",
    "targets": {
      "file": {
        "type": "File",
        "fileName": "${basedir}/logs/my_api-log-${shortdate}.log",
        "maxArchiveFiles": 7
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Info",
        "writeTo": "file"
      }
    ]
  }
}

另请参阅:https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-configuration-with-appsettings.json

注意

log result in text file:
是从 NLog InternalLogger
logs/logs-nlog.txt
的输出,而不是应用程序日志文件
logs/my_api-log
的输出。

© www.soinside.com 2019 - 2024. All rights reserved.