引入get包:NLog.Extensions.Logging
添加一个nlog.cofig文件 并设置属性,始终复制或较新则复制

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets async="true"> <!--maxArchiveDays最长保存N天,archiveAboveSize一个文件最大为N字节--> <target name="LogAll" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/All/【${shortdate}】-ALL日志-.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogTrace" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Trace跟踪日志/【${shortdate}】-Trace日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogDebug" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Debug调试日志/【${shortdate}】-Debug日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogInfo" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Info信息日志/【${shortdate}】-Info日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogWarn" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Warn警告日志/【${shortdate}】-Warn日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogError" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Error错误日志/【${shortdate}】-Error日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogFatal" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Fatal致命日志/【${shortdate}】-Fatal日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> </targets> <rules> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="Microsoft.*" writeTo="" final="true" /> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="*" level="Fatal" writeTo="LogFatal" final="true"/> <logger name="*" level="Error" writeTo="LogError" final="true"/> <logger name="*" level="Warn" writeTo="LogWarn" final="true"/> <logger name="*" level="Info" writeTo="LogInfo" final="true"/> <logger name="*" level="Debug" writeTo="LogDebug" final="true"/> <logger name="*" level="Trace" writeTo="LogTrace" final="true"/> <logger name="*" minlevel="Debug" writeTo="LogAll" /> </rules> </nlog>

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets async="true"> <!--maxArchiveDays最长保存N天,archiveAboveSize一个文件最大为N字节--> <target name="LogAll" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/All/【${shortdate}】-ALL日志-.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}] ${newline}" /> <target name="LogTrace" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Trace跟踪日志/【${shortdate}】-Trace日志.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline} " /> <target name="LogDebug" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Debug调试日志/【${shortdate}】-Debug日志.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline} " /> <target name="LogInfo" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Info信息日志/【${shortdate}】-Info日志.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}] ${newline}" /> <target name="LogWarn" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Warn警告日志/【${shortdate}】-Warn日志.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline} " /> <target name="LogError" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Error错误日志/【${shortdate}】-Error日志.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline} " /> <target name="LogFatal" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Fatal致命日志/【${shortdate}】-Fatal日志.txt" layout="【时间】[${date}]【日志等级】[${level:uppercase=true}]【位置】[${logger}]${newline}【信息】[${message:withexception=true}] ${newline}" /> </targets> <rules> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="Microsoft.*" writeTo="" final="true" /> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="*" level="Fatal" writeTo="LogFatal" final="true" /> <logger name="*" level="Error" writeTo="LogError" final="true" /> <logger name="*" level="Warn" writeTo="LogWarn" final="true" /> <logger name="*" level="Info" writeTo="LogInfo" final="true" /> <logger name="*" level="Debug" writeTo="LogDebug" final="true" /> <logger name="*" level="Trace" writeTo="LogTrace" final="true" /> <logger name="*" minlevel="Debug" writeTo="LogAll" /> </rules> </nlog>

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets async="true"> <!--maxArchiveDays最长保存N天,archiveAboveSize一个文件最大为N字节--> <target name="LogDebug" xsi:type="File" maxArchiveDays="7" archiveAboveSize="10485760" fileName="Logs/Debug信息/【${shortdate}】.txt" layout="【${date}】【${logger}】${newline}【信息】${message:withexception=true}${newline}${newline} " /> <target name="LogInfo" xsi:type="File" maxArchiveDays="7" archiveAboveSize="10485760" fileName="Logs/Info信息/【${shortdate}】.txt" layout="【${date}】【${logger}】${newline}【信息】${message:withexception=true}${newline}${newline} " /> <target name="LogError" xsi:type="File" maxArchiveDays="7" archiveAboveSize="10485760" fileName="Logs/Error信息/【${shortdate}】.txt" layout="【${date}】【${logger}】${newline}【信息】${message:withexception=true}${newline}${newline} " /> </targets> <rules> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="Microsoft.*" writeTo="" final="true" /> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="*" level="Error" writeTo="LogError" final="true"/> <logger name="*" level="Info" writeTo="LogInfo" final="true"/> <logger name="*" level="Debug" writeTo="LogDebug" final="true"/> </rules> </nlog>
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets async="true"> <!--maxArchiveDays最长保存N天,archiveAboveSize一个文件最大为N字节--> <target name="LogAll" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/All/【${shortdate}】-ALL日志-.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogTrace" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Trace跟踪日志/【${shortdate}】-Trace日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogDebug" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Debug调试日志/【${shortdate}】-Debug日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogInfo" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Info信息日志/【${shortdate}】-Info日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogWarn" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Warn警告日志/【${shortdate}】-Warn日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogError" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Error错误日志/【${shortdate}】-Error日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> <target name="LogFatal" xsi:type="File" maxArchiveDays="30" archiveAboveSize="10485760" fileName="Logs/Fatal致命日志/【${shortdate}】-Fatal日志.txt" layout="【时间】[${date}]${newline}【日志等级】[${level:uppercase=true}]${newline}【位置】[${logger}]${newline}【信息】[${message:withexception=true}]${newline}${newline} " /> </targets> <rules> <!--日志记录规则,符合规则的writeTo到相应的日志目标中--> <logger name="*" minlevel="Debug" writeTo="LogAll" /> <logger name="*" level="Trace" writeTo="LogTrace" />\ <logger name="*" level="Debug" writeTo="LogDebug" /> <logger name="*" level="Info" writeTo="LogInfo" /> <logger name="*" level="Warn" writeTo="LogWarn" /> <logger name="*" level="Error" writeTo="LogError" /> <logger name="*" level="Fatal" writeTo="LogFatal" /> </rules> </nlog>
注入到程序
builder.Services.AddLogging(logging =>
{
logging.AddNLog();
});
使用的时候 构造函数
private readonly ILogger<DyVideoController> _logger; public DyVideoController(IDyVideoServer dyVideoServer, ILogger<DyVideoController> logger) { this._videoServer = dyVideoServer; this._logger = logger; }
效果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2022-06-04 URL中文转换成类似%E6%96%97%E7%A0%B4(url编码)格式