NLog 使用说明

类库结果:

 
 public class FileLogger : ILogger
    {
        Logger _log = null;

        public FileLogger()
        {
            _log=LogManager.GetCurrentClassLogger();
        }

        public void WriteLog(string msg, ELogLevel level=ELogLevel.Info)
        {
            switch (level)
            {
                case ELogLevel.Info:
                    _log.Info(msg);
                    break;
                case ELogLevel.Debug:
                    _log.Debug(msg);
                    break;
                case ELogLevel.Trace:
                    _log.Warn(msg);
                    break;
                case ELogLevel.Error:
                    _log.Error(msg);
                    break;
                case ELogLevel.Fatal:
                    _log.Fatal(msg);
                    break;
            }

        }
        public void Dispose()
        {
        }
        private string GetAppSettingValue(string key)
        {
            string value = null;
            try { value = System.Configuration.ConfigurationManager.AppSettings[key]; }
            catch { value = string.Empty; }
            return value;
        }
    }

 

    public interface ILogger
    {
        void WriteLog(string msg, ELogLevel level);
    }
配置文件:
<?xml version="1.0" encoding="utf-8" ?>

<nlog>
<variable value="${basedir}/logs" name="logDirectory"></variable>
  <targets>
    <target name="logfile" layout="${longdate} ${message} ${exception:format=tostring}" type="File" filename="${logDirectory}/${shortdate}.log"></target>
    <target name="console" layout="${longdate} ${message} ${exception:format=tostring}" type="ColoredConsole"></target>
    <target type="Database" name="database" connectionstring="Data Source=JACKZHANG;Initial Catalog=Test;uid=sa;pwd=123456;">
      <commandText>
        insert into NLog ([CreateDate], [Origin], [LogLevel], [Message], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @stackTrace);
      </commandText>
      <parameter name="@createDate" layout="${longdate}"/>
      <!--日志发生时间-->
      <parameter name="@origin" layout="${callsite}"/>
      <!--日志来源-->
      <parameter name="@logLevel" layout="${level}"/>
      <!--日志等级-->
      <parameter name="@message" layout="${message}"/>
      <!--日志信息-->
      <parameter name="@stackTrace" layout="${stacktrace}"/>
      <!--堆栈信息-->
    </target>
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeto="console"></logger>
    <logger name="*" minlevel="Debug" writeto="logfile"></logger>
    <logger name="*" minlevel="Debug" writeto="database"></logger>
  </rules>
</nlog>

 

posted @ 2019-04-30 21:49  NCat  阅读(161)  评论(0)    收藏  举报