如何在C#中通过NLog配置规则实现特定优先级日志输出
问题场景与代码整理
你提供的Logger类和日志配置内容我已经帮你整理成清晰的格式,方便后续实现log方法:
Logger类代码
public class Logger : ILogging { private ILogger _logger; public Logger() { _logger = LoggerFactory<ILogging>.Resolve(); } public void log(string priority, string message) { //待实现代码 } }
日志配置文件内容
<rules > <logger name="Priority1" minlevel="Error" writeTo="logfile" /> <logger name="Priority2" minlevel="Warn" writeTo="logfile" /> <logger name="Priority3" minlevel="Debug" writeTo="logfile" /> <!-- 你提到的"logger n..."应该是未完成的配置项,后续可以补充完整 --> </rules>
简单实现思路参考
如果要完成log方法,大概可以按这几步来:
- 先加载解析配置文件,把每个
priority(对应配置里的name)和对应的最低日志级别minlevel存入映射集合 - 调用
log方法时,根据传入的priority找到对应的minlevel - 判断当前日志的实际级别是否满足该
priority的最低要求(比如如果是Error级别,要检查是否符合对应规则的minlevel) - 若满足级别要求,调用
_logger的相关方法将日志写入logfile
内容的提问来源于stack exchange,提问作者user3580768
相关产品推荐
相关产品推荐

