有段時間沒寫博客了,過年放假,一直在弄CMS。什麼都本身寫了一遍,今天寫寫NLog,以前一用的log4net,感受配置起來仍是有些麻煩。數據庫
<?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" autoReload="true" throwExceptions="true" internalLogLevel="Debug" internalLogFile="c:\NLog\log.txt"> <targets async="true"> <default-wrapper xsi:type="BufferingWrapper" bufferSize="100"/> <!-- write log message to console --> <target xsi:type="Console" name="console" layout=" ${newline}時間: ${longdate} ${newline}來源: ${callsite} ${newline}等級: ${level} ${newline}信息: ${message} ${newline}堆棧: ${event-context:item=exception} ${stacktrace} ${newline}${newline}-----------------------------------------------------------" /> <!-- write log message to file --> <target xsi:type="File" name="file" fileName="${basedir}/Logs/${date:format=yyyy}/${date:format=MM}/${level}/${shortdate}.txt" layout=" ${newline}時間: ${longdate} ${newline}來源: ${callsite} ${newline}等級: ${level} ${newline}信息: ${message} ${newline}堆棧: ${event-context:item=exception} ${stacktrace} ${newline}${newline}-----------------------------------------------------------" /> <!-- write log message to database --> <target xsi:type="Database" name="database" connectionstring="Data Source=DESKTOP-1COGQ4S;Initial Catalog=MiaoZhanCMS_db;Integrated Security=True;User ID=sa;Password=wangcong;"> <!-- SQL command to be executed for each entry --> <commandText> INSERT INTO SystemLog(UserName,UserId,OperationType,MenuName,Action,Contents,IP) VALUES (@userName, @userId, @operationType, @menuName, @action, @contents, @IP); </commandText> <!-- parameters for the command --> <!--日記來源--> <!--<parameter name="@origin" layout="${callsite}" /> --><!--日誌級別--><!-- <parameter name="@levels" layout="${level}" /> --><!--異常信息--><!-- <parameter name="@message" layout="${message}" /> --><!--堆棧信息--><!-- <parameter name="@stacktrace" layout="${stacktrace}" />--> <parameter name="@userName" layout="${event-context:item=userName}" /> <parameter name="@userId" layout="${event-context:item=userId}" /> <parameter name="@operationType" layout="${event-context:item=operationType}" /> <parameter name="@menuName" layout="${event-context:item=menuName}" /> <parameter name="@action" layout="${event-context:item=action}" /> <parameter name="@contents" layout="${event-context:item=contents}" /> <parameter name="@IP" layout="${event-context:item=IP}" /> </target> <!-- write log message to mail --> <!--<target xsi:type="Mail" name="infoMail" smtpServer="smtp.qq.com" smtpPort="25" smtpAuthentication="Basic" smtpUserName="郵箱帳號" smtpPassword="郵箱密碼" enableSsl="true" addNewLines="true" from="發送郵箱" to="接收郵箱" subject="xx系統錯誤日誌" header="=======================================" body=" ${newline}時間: ${longdate} ${newline}來源: ${callsite} ${newline}等級: ${level} ${newline}信息: ${message} ${newline}堆棧: ${event-context:item=exception} ${stacktrace}" footer="=======================================" />--> </targets> <rules> <logger name="*" writeTo="console" /> <logger name="*" writeTo="file" /> <logger name="*" writeTo="database"/> <!--<logger name="*" minlevel="Error" writeTo="infoMail" />--> </rules> </nlog>
配置文件包括以下,若是須要擴展,能夠本身方法。app
此配置是異步寫入,按年、月、日、分紅級別日誌。異步
我主要是用來是系統日誌,配置方便簡潔,效率也很高,就是這麼酸爽。async