首页 > 代码库 > .net core nlog记录日志
.net core nlog记录日志
1、通过nuget 查找 下载 NLog.Extensions.Logging
2、配置nlog.config文件
1 <?xml version="1.0" encoding="utf-8" ?> 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug"> 5 6 <!-- 7 See http://nlog-project.org/wiki/Configuration_file 8 for information on customizing logging rules and outputs. 9 -->10 <!--<nlog throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug" />-->11 <targets>12 <!-- add your targets here -->13 <target xsi:type="File" name="file" fileName="${basedir}/logs/${level}/${shortdate}.log"14 layout="${longdate} ${uppercase:${level}} ${message}" />15 16 <!--<target type="Database" name="database" connectionString="Data Source=localhost;Initial Catalog=Test;User ID=sa;Password=sa;MultipleActiveResultSets=true; ">17 <commandText>18 insert into ErrorLog ([CreateDate], [Origin], [LogLevel], [Message], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @stackTrace);19 </commandText>20 <parameter name="@createDate" layout="${longdate}"/>21 日志发生时间22 <parameter name="@origin" layout="${callsite}"/>23 日志发生时间24 <parameter name="@logLevel" layout="${level}"/>25 日志等级26 <parameter name="@message" layout="${message}"/>27 日志信息28 <parameter name="@stackTrace" layout="${stacktrace}"/>29 日志发生时间30 </target>-->31 <!--32 <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"33 layout="${longdate} ${uppercase:${level}} ${message}" />34 -->35 </targets>36 37 <rules>38 <!-- add your logging rules here -->39 <logger name="*" minlevel="Trace" writeTo="file"/>40 <!--<logger name="*" level="Error" appendTo="database"/>-->41 42 43 </rules>44 </nlog>
3、在Configure 添加配置
//日志 loggerFactory.AddNLog(); env.ConfigureNLog("Config/nlog.config");
4、往project.json 添加配置 发布输出
1 "publishOptions": { 2 "include": [ 3 "wwwroot", 4 "**/*.cshtml", 5 "appsettings.json", 6 "web.config", 7 "Config", //nlog 8 "Export" //Export 9 ]10 },
5、封装的操作类
1 /// <summary> 2 /// 日志 3 /// </summary> 4 public class NLogger 5 { 6 private static readonly Logger logger = LogManager.GetCurrentClassLogger(); 7 8 #region "等级1-Debug" 9 /// <summary> 10 /// 记录调试信息 11 /// </summary> 12 /// <param name="userInfo">用户信息</param> 13 /// <param name="msg">具体信息</param> 14 public static void Debug(string msg, string userInfo = "") 15 { 16 string info = string.Empty; 17 if (userInfo != "") 18 { 19 info = userInfo; 20 } 21 info = info + "\r\n" + msg; 22 23 logger.Debug(info); 24 } 25 26 #endregion 27 28 #region "等级2-Info" 29 30 31 /// <summary> 32 /// 记录信息 33 /// </summary> 34 /// <param name="userInfo">用户信息</param> 35 /// <param name="msg">具体信息</param> 36 public static void Info(string msg, string userInfo = "") 37 { 38 string info = string.Empty; 39 if (userInfo != "") 40 { 41 info = userInfo; 42 } 43 info = info + "\r\n" + msg; 44 logger.Info(info); 45 46 } 47 48 #endregion 49 50 #region "等级3-Warn" 51 52 53 54 /// <summary> 55 /// 记录警告信息 56 /// </summary> 57 /// <param name="userInfo">用户信息</param> 58 /// <param name="msg">具体信息</param> 59 public static void Warn(string msg, string userInfo = "") 60 { 61 string info = string.Empty; 62 if (userInfo != "") 63 { 64 info = userInfo; 65 } 66 info = info + "\r\n" + msg; 67 logger.Warn(info); 68 69 } 70 71 #endregion 72 73 #region "等级4-Error" 74 75 76 /// <summary> 77 /// 记录错误信息 78 /// </summary> 79 /// <param name="userInfo">用户信息</param> 80 /// <param name="msg">具体信息</param> 81 public static void Error(string msg, string userInfo = "") 82 { 83 string info = string.Empty; 84 if (userInfo != "") 85 { 86 info = userInfo; 87 } 88 info = info + "\r\n" + msg; 89 logger.Error(info); 90 91 } 92 93 94 95 /// <summary> 96 /// 记录异常信息 97 /// </summary> 98 /// <param name="userInfo">用户信息</param> 99 /// <param name="ex">具体异常</param>100 public static void Error(Exception ex, string userInfo = "")101 {102 string info = "";103 if (userInfo != "")104 {105 info = userInfo;106 }107 info = info+"\r\n" + ErrorDetails(ex);108 logger.Error(info);109 110 }111 112 /// <summary>113 /// 将异常转成字符串114 /// </summary>115 /// <param name="ex"></param>116 /// <returns></returns>117 private static string ErrorDetails(Exception ex)118 {119 StringBuilder sb = new StringBuilder();120 int count = 0;121 string appString = "";122 while (ex != null)123 {124 if (count > 0)125 {126 appString += " ";127 }128 sb.AppendLine(appString + " <br>异常消息:" + ex.Message);129 sb.AppendLine(appString + " <br>异常类型:" + ex.GetType().FullName);130 // sb.AppendLine(appString + " <br>异常方法:" + (ex.TargetSite == null ? null : ex.TargetSite.Name));131 sb.AppendLine(appString + " <br>异常源:" + ex.Source);132 if (ex.StackTrace != null)133 {134 sb.AppendLine(appString + "<br>异常堆栈:" + ex.StackTrace);135 }136 if (ex.InnerException != null)137 {138 sb.AppendLine(appString + "<br>内部异常:");139 count++;140 }141 ex = ex.InnerException;142 }143 144 return sb.ToString().Replace("位置:", "<br>位置");145 }146 147 #endregion148 149 #region "等级5-Fatal "150 151 152 153 /// <summary>154 /// 记录致命错误155 /// </summary>156 /// <param name="userInfo">用户信息</param>157 /// <param name="msg">具体信息</param>158 public static void Fatal(string msg, string userInfo = "")159 {160 string info = string.Empty;161 if (userInfo != "")162 {163 info = userInfo;164 }165 info = info + "\r\n" + msg;166 logger.Fatal(info);167 168 }169 170 #endregion171 }
5、调用
NLogger.Debug("测试");
.net core nlog记录日志
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。