全书目录

第十五篇:ASP.NET Core 完全指南 —— 国家级综合服务枢纽宇宙

第九章:日志 —— 国家级审计与留痕系统

1 分钟 144 字 第 298 / 962 个阅读单元

日志(Logging)是枢纽的审计中心。没有日志,线上问题一来,你连“谁在什么时候经过哪个窗口”都不知道。

#注入日志器
csharp
public class CitizenService : ICitizenService
{
    private readonly ILogger<CitizenService> _logger;

    public CitizenService(ILogger<CitizenService> logger)
    {
        _logger = logger;
    }

    public Task<bool> ValidateAsync(string citizenId)
    {
        _logger.LogInformation("开始核验 citizenId={CitizenId}", citizenId);
        return Task.FromResult(true);
    }
}
#日志要写成结构化,不要拼字符串

推荐:

csharp
_logger.LogInformation(
    "办理证照成功,CitizenId={CitizenId}, PermitId={PermitId}",
    citizenId,
    permitId);

不推荐:

csharp
_logger.LogInformation("办理证照成功: " + citizenId + ", " + permitId);

前者更适合检索、聚合、告警和分析。

#日志在枢纽里的位置
text
请求进入 -> 记录入口日志
业务处理 -> 记录关键节点日志
异常发生 -> 记录错误日志
响应结束 -> 记录结果日志

日志不是“为了看着热闹”,而是为了排障、审计、追踪、统计