日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NLog使用整理

發(fā)布時(shí)間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NLog使用整理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

NLog使用中碰到的問(wèn)題整理

1,日志寫(xiě)mysql數(shù)據(jù)庫(kù)報(bào)錯(cuò),

原因:

在sql語(yǔ)句中使用了mysql的函數(shù)now() 導(dǎo)致插入失敗,

解決辦法: 使用參數(shù)代替now().

nlog配置文件中設(shè)置?throwExceptions="true"?internalLogLevel="Debug" 可以是nlog拋出異常方便問(wèn)題定位,

2、一些layout方法記錄: ?見(jiàn):https://github.com/NLog/NLog/wiki/Layout-Renderers

? ?自定義參數(shù):

?<variable name="myvar" value="myvalue"/>

則參數(shù)?myvar 可以直接使用 ${myvar} 得到值?myvalue

也可以在代碼中定義:

1 <target xsi:type="Database" name="LogOnlog" connectionStringName ="DataBase" > 2 <commandText> 3 Insert into MyLog(Operator_name,Operator_Type,IP,DateTime,Operation) Values(@Operator_name,@Operator_Type,@IP,@DateTime,@Operation); 4 </commandText> 5 <parameter name = "@Operator_name" layout = "${event-context:item=Operator_name}"/> 6 <parameter name = "@Operator_Type" layout = "${event-context:item=Operator_Type}" /> 7 <parameter name = "@DateTime" layout = "${event-context:item=DateTime}"/> 8 <parameter name = "@IP" layout = "${event-context:item=IP}" /> 9 <parameter name = "@Operation" layout = "${event-context:item=Operation}" /> 10 11 </target> 12 13 </targets> 14 15 <rules> 16 <logger name="*" minlevel="Trace " writeTo="LogOnlog"/> 17 </rules> {event-context:item=Operation}中:后面的“Operation”在生成Logger時(shí)會(huì)形成名為“Operation”的鍵,
我們就可以在代碼中對(duì)他賦值,詳見(jiàn):https://github.com/NLog/NLog/wiki/EventContext-Layout-Renderer。代碼中是這樣: Logger logger = LogManager.GetCurrentClassLogger(); LogEventInfo lei = new LogEventInfo();lei.Properties["Operator_name"] = Opeator_Name;lei.Properties["Operator_Type"] = Operator_Type;lei.Properties["DateTime"] = DateTime.Now;lei.Properties["IP"] = GetClientIPOrAdd.GetIP();lei.Properties["Operation"] = Operation;lei.Level = LogLevel.Info;logger.Log(lei);

3、當(dāng)我們修改 NLog.config 文件時(shí),要重新編譯解決方案,修改才會(huì)起作用

4、路由規(guī)則rule

路由規(guī)則主要用于將日志和輸出目標(biāo)匹配起來(lái),它一般有如下幾個(gè)屬性

  • name - 記錄者的名字 (允許使用通配符*)
  • minlevel - 匹配日志范圍的最低級(jí)別
  • maxlevel - 匹配日志范圍的最高級(jí)別
  • level - 匹配的單一日志級(jí)別
  • levels - 匹配的一系列日志級(jí)別,由逗號(hào)分隔。
  • writeTo - 規(guī)則匹配時(shí)日志應(yīng)該被寫(xiě)入的一系列目標(biāo),由逗號(hào)分隔。

?

尚未解決的問(wèn)題:

Logger logger = LogManager.GetLogger(string name);
這個(gè)方法中的name參數(shù)是干什么用的還是沒(méi)有搞清楚。

------------補(bǔ)充-----------------------------

查看了源碼 ?這個(gè)name參數(shù)好像沒(méi)什么作用,記錄日志的人,默認(rèn)是當(dāng)前類名(fullname),暫且當(dāng)作一個(gè)標(biāo)記使用。?

?

參考地址:

http://www.cnblogs.com/freeliver54/p/6514686.html

http://www.cnblogs.com/TianFang/p/4003749.html

一個(gè)系列講解: http://blog.csdn.net/u010176014/article/details/48655493

官網(wǎng)詳細(xì)layout文檔: https://github.com/NLog/NLog/wiki/Layout-Renderers

轉(zhuǎn)載于:https://www.cnblogs.com/xululublog/p/NLog_douluxu.html

總結(jié)

以上是生活随笔為你收集整理的NLog使用整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。