.Net Core Nlog 日志工具笔记

private static NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();
<?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="false"
      internalLogLevel="Off"
      internalLogFile="c:\temp\nlog-internal.log">
  <variable name="varDataFolderPath" value="${basedir}/logs"/>
  <variable name="varLayHeader" value="${longdate}|${level}"/>
  <variable name="varLayMiddle" value="${callsite-linenumber}|${callsite:includeSourcePath=false:methodName=false}"/>
  <variable name="varLayBack" value="${message}|${exception:format=toString}"/>
  
  
  <targets async="true"> 
    <!--async="true"表示异步记录日志,提高程序效率 文档说明(https://blog.csdn.net/surfirst/article/details/110404365)-->
    <!--5120000:5000KB|1024000:1000KB|512000:500KB-->
    <!--<target name="debugger" xsi:type="Debugger" layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}"/>-->
    <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}"/>
    <target name="error_file" xsi:type="File" maxArchiveFiles="30"
			keepFileOpen="true"
            archiveAboveSize="5120000" archiveEvery="Day" archiveNumbering="Rolling"
            archiveFileName="${varDataFolderPath}/archives/error-${date:format=yyyyMMdd}-{###}.log"
            fileName="${basedir}/logs/error.log"
            layout="${newline}时间:${longdate}
              ${newline}等级:${level:uppercase=false:padding=-5}
              ${newline}信息:${message}
              ${newline}路径:${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}"/>
    <target name="log_file" xsi:type="File" maxArchiveFiles="30"
            keepFileOpen="true"
            archiveAboveSize="5120000"
            archiveEvery="Day"
            archiveNumbering="Rolling"
            archiveFileName="${varDataFolderPath}/archives/loger-${date:format=yyyyMMdd}-{###}.log"
            fileName="${basedir}/logs/info.log"
            layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message}"/>
	  <target name="trace_file" xsi:type="File" maxArchiveFiles="30"
            archiveAboveSize="5120000"
            archiveEvery="Day"
            archiveNumbering="Rolling"
            archiveFileName="${varDataFolderPath}/archives/trace-${date:format=yyyyMMdd}-{###}.log"
            fileName="${basedir}/logs/trace.log"
            layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message}"/>
    <target name="log_sqlserver" xsi:type="Database" dbProvider="System.Data.SqlClient" connectionString="Data Source=127.0.0.1;Initial Catalog=Nlog;Persist Security Info=True;User ID=sa;Password=hx@123" commandText="insert into NLog([Date],[origin],[Level],[Message],[Detail],[Source]) values (getdate(), @origin, @logLevel, @message,@detail,@source)">
      <parameter name="@origin" layout="${callsite}"/> <!--日志来源-->
      <parameter name="@logLevel" layout="${level}"/> <!--日志等级-->
      <parameter name="@message" layout="${message}"/> <!--日志消息-->
      <parameter name="@detail" layout="${variable1}"/> <!--引用variable1信息-->
      <parameter name="@source" layout="${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}"/> <!--路径-->
    </target>
	<target name="log_mysql" xsi:type="Database" dbProvider="MySql.Data.MySqlClient" connectionString="Server=127.0.0.1;Database=nlog;Uid=root;Pwd=hx@123;" commandText="insert into nlog(create_time,loglevel,callsite,massage,stacktrace,logger,machinename,appversion,processname) values (@create_time,@loglevel,@callsite,@massage,@stacktrace,@logger,@machinename,@appversion,@processname)">
		<parameter name="create_time" layout="${longdate}"/>
		<parameter name="loglevel" layout="${level}"/>
		<parameter name="logger" layout="${logger}"/>
		<parameter name="machinename" layout="${machinename}"/>
		<parameter name="appversion" layout="${assembly-version}"/>
		<parameter name="processname" layout="${processname}"/>
		<parameter name="callsite" layout="${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}"/>
		<parameter name="massage" layout="${message}"/>
		<parameter name="stacktrace" layout="${stacktrace}"/>
	</target>
  </targets>
  <rules>
    <logger name="*" writeTo="console"/> <!--将所有类型的日志输出到控制台中-->
    <logger name="*" level="Error" writeTo="error_file"/>  <!--将Error级别以上的日志输出到文件中-->
    <logger name="*" level="Trace" writeTo="trace_file"/>
    <logger name="*" levels="Info,Trace,Fatal,Warn" writeTo="log_file"/>  <!--将Info,Fatal,Warn级别的日志输出到文件中-->
	<!--<logger name="*" minlevel="Info" writeTo="logconsole" />--> <!--将Info级的日志输出到控制台-->
	<!--<logger name="*" writeTo="debugger"/>-->
	  
    <!--将所有日志记录到数据库中,需要添加System.Data.dll、MySql.Data.dll的引用-->
    <!--
    <logger name="*" writeTo="log_sqlserver"/>
    <logger name="*" writeTo="log_mysql"/>
	-->
  </rules>
</nlog>

https://www.cnblogs.com/JaggerMan/p/4884504.html

默认配置

<?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="false"
      internalLogLevel="Off"
      internalLogFile="c:\nlog\nlog-internal.log">

  <variable name="varDataFolderPath" value="${basedir}/logs"/>
  <variable name="varLayHeader" value="${longdate}|${level}"/>
  <variable name="varLayMiddle" value="${callsite-linenumber}|${callsite:includeSourcePath=false:methodName=false}"/>
  <variable name="varLayBack" value="${message}|${exception:format=toString}"/>
  <targets>
    <!--屏幕打印消息-->
    <target name="console" xsi:type="ColoredConsole"
                    layout="${date:format=HH\:mm\:ss}> ${message}"/>

    <!--VS输出窗口-->
    <target name="debugger" xsi:type="Debugger"
                    layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}" />

    <!--保存至文件-->
    <target name="error_file" xsi:type="File" maxArchiveFiles="30"
                    archiveAboveSize="5120000" archiveEvery="Day" archiveNumbering="Rolling"
                    archiveFileName="${varDataFolderPath}/archives/e-${date:format=yyyyMMdd}-{###}.log"
                    fileName="${basedir}/Logs/error.log"
                    layout="
                    ${newline}时间:${longdate}
                    ${newline}等级:${level:uppercase=false:padding=-5}
                    ${newline}信息:${message}
                    ${newline}路径:${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}"/>
    

    <target name="info_file" xsi:type="File" maxArchiveFiles="30"
                    archiveAboveSize="5120000"
                    archiveEvery="Day"
                    archiveNumbering="Rolling"
                    archiveFileName="${varDataFolderPath}/archives/i-${date:format=yyyyMMdd}-{###}.log"
                    fileName="${basedir}/Logs/info.log"
                    layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message}" />
  </targets>

  <rules>
    <logger name="*" writeTo="console" />    <!--将所有的日志输出到控制台中-->
    <logger name="*"  writeTo="debugger"/>
    <logger name="*" level="Error" writeTo="error_file" />        <!--将Error级别以上的日志输出到文件中-->
    <logger name="*" level="Info" writeTo="info_file" />        <!--将Error级别以上的日志输出到文件中-->
    
  </rules>
</nlog>

 static void Main(string[] args)
        {
            Logger _logger = LogManager.GetCurrentClassLogger();
            _logger.Trace("Trace Message");
            _logger.Debug("DebugMessage");
            _logger.Info("InfoMessage");
            _logger.Error("Error Message");
            _logger.Fatal("FatalMessage");
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.Net Core2.1+NLog+数据库连接 <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="true" internalLogLevel="warn" internalLogFile="logfiles/internal-nlog.txt"> <targets> <target xsi:type="Null" name="blackhole" /> <target name="database" xsi:type="Database" dbProvider="System.Data.SqlClient" connectionString="Data Source=127.0.0.1;Initial Catalog=MiddleData;User ID=lzhu;Password=bl123456;" > <!-- create table NLog ( Id int identity, Application nvarchar(50) null, Logged datetime null, Level nvarchar(50) null, Message nvarchar(512) null, Logger nvarchar(250) null, Callsite nvarchar(512) null, Exception nvarchar(512) null, constraint PK_NLOG primary key (Id) ) --> <commandText> insert into nlog ( Application, Logged, Level, Message, Logger, CallSite, Exception ) values ( @Application, @Logged, @Level, @Message, @Logger, @Callsite, @Exception ); </commandText> <parameter name="@application" layout="NLogTestDemo" /> <parameter name="@logged" layout="${date}" /> <parameter name="@level" layout="${level}" /> <parameter name="@message" layout="${message}" /> <parameter name="@logger" layout="${logger}" /> <parameter name="@callSite" layout="${callsite:filename=true}" /> <parameter name="@exception" layout="${exception:tostring}" /> </target> </targets> <rules> <!--Skip Microsoft logs and so log only own logs--> <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /> <logger name="NLogTestDemo.*" minlevel="Info" writeTo="database" /> </rules> </nlog>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值