nlog
mysql.data
nlog.web
nlog.database
builder.Logging.AddNLog("Config/NLog.config");
<?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="Off" internalLogFile="NLog\all_log.log">
  <targets>
    <target xsi:type="File"
          name="all_log"
          fileName="NLog\${shortdate}\${event-properties:filename}${shortdate}.log"
          layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}"
          archiveFileName="NLog\${shortdate}\${event-properties:filename}${shortdate}.{####}.log"
          archiveNumbering="Rolling"
          archiveAboveSize="10485760"
          concurrentwrites="true"
          maxArchiveFiles="100"
              />
    <target  name="database" xsi:type="Database"
   dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" >
      <connectionString>
        server=localhost;database=test;port=3306;uid=root;pwd=0000;
      </connectionString>
      <commandText>
        INSERT INTO logs(app_name,log_date, thread, `level`, logger, message, `exception`)VALUES(@app_name,@log_date, @thread,@log_level, @logger, @message, @exception);
      </commandText>
      <parameter name="@app_name" layout="AspNetCoreNlog" />
      <parameter name="@log_date" layout="${date}" />
      <parameter name="@thread" layout="${threadid}" />
      <parameter name="@log_level" layout="${level}" />
      <parameter name="@logger" layout="${logger}" />
      <parameter name="@message" layout="${message}" />
      <parameter name="@exception" layout="${exception:tostring}" />
    </target>
  </targets>
  <rules>
    <logger name="Microsoft.*" minlevel="Trace"  final="true" />
    <logger name="*" minlevel="Trace" writeTo="all_log" />
    <logger name="*" minlevel="Trace" writeTo="database" />
  </rules>
</nlog>
public class LogHelper
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();
        public static void Info(string msg, string fileName = "INFO")
        {
            logger.WithProperty("filename", fileName).Info(msg);
        }
        public static void Debug(string msg, string fileName = "DEBUG")
        {
            logger.WithProperty("filename", fileName).Debug(msg);
        }
        public static void Error(string msg, string fileName = "ERROR")
        {
            logger.WithProperty("filename", fileName).Error(msg);
        }
        public static void Warn(string msg, string fileName = "WARN")
        {
            logger.WithProperty("filename", fileName).Warn(msg);
        }
    }
                    
                
                
            
        
浙公网安备 33010602011771号