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>
复制代码

 

posted on   itjeff  阅读(1024)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示