1、NLog
<targets> <!--记录日志到文件--> <target xsi:type="File" name="fileLog" fileName="${basedir}/LogFile/${shortdate}.log" layout="${date:format=yyyy-MM-dd HH\:mm\:ss}|${level:uppercase=true}|${logger}${newline}${message}${newline}${newline}" /> <!--记录日志到SqlServer数据库--> <target name="dbLog" xsi:type="Database"> <connectionString>Data Source=localhost;Initial Catalog=Demo;Persist Security Info=True;User ID=sa;Password=123456789;</connectionString> <dbProvider>System.Data.SqlClient</dbProvider> <commandText> INSERT INTO dbo.Log (Logged,Level,Message,Username,ServerName,Logger) VALUES (@Logged,@Level,@Message,@Username,@ServerName,@Logger) </commandText> <parameter name="@logged" layout="${date}" /> <parameter name="@level" layout="${level}" /> <parameter name="@message" layout="${message}" /> <parameter name="@username" layout="${identity}" /> <parameter name="@serverName" layout="${machinename}" /> <parameter name="@logger" layout="${logger}" /> </target> <!--发送邮件日志--> <target xsi:type="Mail" name ="mailLog" smtpServer="smtp.gmail.com" smtpPort="587" smtpAuthentication="Basic" smtpUsername="邮箱用户名" smtpPassword="邮箱密码" enableSsl="true" addNewLines="true" from="发件人" to="收件人(逗号分隔)" cc="抄送" html="true" encoding="UTF-8" subject="邮件主题" header="************************************************************************" body="${newline} 时间:${date:format=yyyy-MM-dd HH\:mm\:ss} ${newline}${newline} 级别:${level:uppercase=true} ${newline}${newline} Logger:${logger} ${newline}${newline} 详情:${message} ${newline}${newline}" footer="************************************************************************" /> </targets> <rules> <logger name="*" minLevel="Debug" maxlevel="Fatal" writeTo="fileLog" /> <logger name="*" minLevel="Debug" maxlevel="Fatal" writeTo="dbLog" /> <logger name="*" minLevel="Debug" maxlevel="Fatal" writeTo="mailLog" /> </rules> </nlog>
2、Log4Net
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <!--日志记录组建配置--> <log4net> <!-- Console部分log输出格式的设定 --> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="[%-5p]|%d|%logger|[%ndc] %n%m%n" /> </layout> </appender> <!-- 日志文件部分log输出格式的设定 --> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\" /> <!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--是否追加到文件,默认为true,通常无需设置--> <appendToFile value="true" /> <rollingStyle value="Date" /> <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> <datePattern value="yyyyMMdd‘.txt‘" /> <staticLogFileName value="false" /> <layout type="log4net.Layout.PatternLayout"> <header value="" /> <!--[%-5p]:日志级别,格式化为5个宽度 [%d]日志时间 [%logger]:日志记录者 [%n]:换行 [%m]:日志内容--> <ConversionPattern value="[%-5p]|%d|%logger|[%ndc] %n%m%n%n" /> </layout> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="DEBUG" /> <!--<appender-ref ref="ConsoleAppender" />--> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
时间: 2024-10-16 08:45:09