6.添加NLog日志
1.添加Nlog引用
2.添加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"> <targets> <!--输出目标:name名称f,xsi:type输出类型文件, fileName输出到程序根目录logs文件夹中, 以日期作为生成log文件名称, layout生成内容的格式--> <target name="f" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" /> </targets> <rules> <!--日志路由规则:最低级别Debug,输出到target目标f--> <logger name="*" minlevel="Debug" writeTo="f" /> </rules> </nlog>
设置属性:复制到输出目录,如果较新则复制
3.添加一个静态类
public static class Logs { private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public static void LogTrace(string message) { logger.Trace(message); } public static void LogWarning(string message) { logger.Warn(message); } public static void LogError(string message) { logger.Error(message); } public static void LogFatal(string message) { logger.Fatal(message); } public static void LogInfo(string message) { logger.Info(message); } public static void LogError(Exception exception) { logger.Error(exception.Message + exception.StackTrace); } }
4.使用
public App() { //程序域异常 AppDomain.CurrentDomain.UnhandledException += (s, e) => { Logs.LogError((Exception)(e.ExceptionObject)); }; //应用程序异常 Current.DispatcherUnhandledException += (s, e) => { Logs.LogError(e.Exception); }; //多线程异常 TaskScheduler.UnobservedTaskException += (s, e) => { Logs.LogError(e.Exception); }; }