.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");
        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值