NLog自定义字段写入数据库表,示例
//自定义字段写入NLog日志 private void saveNLog(InvokeLogModel model) { LogEventInfo ei = new LogEventInfo(); ei.Properties["InvokeResult"] = model.InvokeResult; ei.Properties["RequestUrl"] = model.RequestUrl; ei.Properties["MethodName"] = model.MethodName; ei.Properties["InvokeUserName"] = model.InvokeUserName; ei.Properties["InputJson"] = model.InputJson; ei.Properties["OutputJson"] = model.OutputJson; ei.Properties["BeginTime"] = model.BeginTime; ei.Properties["EndTime"] = model.EndTime; //ei.Message = "my test log message"; ei.Level = LogLevel.Info; nlogger.Log(ei); } //配置读取自定义字段 <?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" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" internalLogLevel="Trace" internalLogFile="C:/internalLog.txt"> <targets async="true"> <target xsi:type="File" name="SimpleDemoFile" fileName="${basedir}/logs/${shortdate}.txt" layout="${longdate} | ${level} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" encoding="UTF-8"/> <target xsi:type="Console" name="Console11" layout="${message}" encoding="UTF-8"/> <target type="Database" name="database" connectionstring="Server=.;Database=LogDB;Uid=de;Pwd=de;"> <commandText> INSERT INTO [LogInfo].[InterfaceBeInvokedLog] ([LogLevel] ,[InvokeResult] ,[InvokeUserName] ,[RequestUrl] ,[MethodName] ,[InputJson] ,[OutputJson] ,[BeginTime] ,[EndTime] ) values (@LogLevel, @InvokeResult, @InvokeUserName, @RequestUrl, @MethodName, @InputJson, @OutputJson, @BeginTime, @EndTime); </commandText> <parameter name="@LogLevel" layout="${level}"/> <parameter name="@InvokeResult" layout="${event-context:item=InvokeResult}"/> <parameter name="@InvokeUserName" layout="${event-context:item=InvokeUserName}"/> <parameter name="@RequestUrl" layout="${event-context:item=RequestUrl}"/> <parameter name="@MethodName" layout="${event-context:item=MethodName}"/> <parameter name="@InputJson" layout="${event-context:item=InputJson}"/> <parameter name="@OutputJson" layout="${event-context:item=OutputJson}"/> <parameter name="@BeginTime" layout="${event-context:item=BeginTime}"/> <parameter name="@EndTime" layout="${event-context:item=EndTime}"/> </target> </targets> <rules> <logger name="*" minLevel="Info" writeTo="SimpleDemoFile"/> <logger name="*" level="Info" writeTo="Console11,database"/> </rules> </nlog>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)