//日志输出
builder.Logging.ClearProviders();
builder.Logging.AddNLog("nlog.config");
配置后默认自动全部输出
需求:自动记录的输出到控制台,手动记录的输出到日志文件
1.配置两个日志记录器 一个控制台,一个日志文件
<rules><!-- 默认日志记录器(仅控制台输出) --><logger name="*" minlevel="Debug" writeTo="logconsole" /><!-- 仅手动调用时才写入文件 --><logger name="ManualFileLogger" minlevel="Debug" writeTo="logfile" /> </rules>
2.控制器类中
public readonly ILogger<KnowTypeController> _logger; // 这个是引用NLog包后,注入到容器后,现在这个是从容器里拿的private static readonly Logger _fileLogger = LogManager.GetLogger("ManualFileLogger"); // 这个直接从NLog中拿//构造函数注入public KnowTypeController(IKnowTypeSe knowTypeSe, ILogger<KnowTypeController> logger): base(){_logger = logger;}
控制器HTTP方法(){
// 这条日志 **仅输出到控制台**
_logger.LogInformation("这是控制台日志");
// 这条日志 **仅写入文件**
_fileLogger.Info("这是手动写入文件的日志");
}