接上篇:
Exceptionless 本地部署
在部署完成后可以使用log4net搭配Exceptionless来记录日志。
过程很简单,使用Nuget安装Exceptionless.Log4net,安装完成后会自动打开一个readme.txt,里面有介绍使用,其实就是把下面这段配置放到log4net的配置中:
<appender name="exceptionless" type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net" />
在项目中添加配置文件log4net.config并设置始终复制到输出目录:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <!--定义输出到文件中--> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="log\\"/> <!--是否追加到文件,默认为true,通常无需设置--> <appendToFile value="true"/> <!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--变换的形式为日志大小--> <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义--> <!--<rollingStyle value="Size"/>--> <!--每天记录的日志文件个数,与maximumFileSize配合使用--> <!--<MaxSizeRollBackups value="10"/>--> <!--每个日志文件的最大大小--> <!--可用的单位:KB|MB|GB--> <!--不要使用小数,否则会一直写入当前日志--> <!--<maximumFileSize value="2MB"/>--> <!--变换的形式为日期,这种情况下每天只有一个日志--> <!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义--> <rollingStyle value="Date"/> <!--每分钟写一个文件--> <!--<datePattern value="yyyyMMdd-HHmm" />--> <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> <datePattern value="yyyyMMdd\\HH‘.txt‘"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%newline %n记录时间:%date %n描述:%message"/> <!--<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>--> </layout> </appender> <appender name="exceptionless" type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net" /> <root> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL"/> <!--文件形式记录日志--> <appender-ref ref="RollingLogFileAppender"/> <appender-ref ref="exceptionless"/> </root> </log4net> </configuration>
修改程序代码如下:
static void Main(string[] args) { FileInfo fi = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config")); XmlConfigurator.ConfigureAndWatch(fi); ILog logger= LogManager.GetLogger(typeof(Program)); ExceptionlessClient.Default.Startup("oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI"); //var client = new ExceptionlessClient(c => { // c.ApiKey = "oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI"; // c.ServerUrl = "http://localhost:8004"; //}); try { throw new Exception("test exception "+DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss")); } catch (Exception ex) { //client.SubmitException(ex); //ex.ToExceptionless().Submit(); logger.Error(ex); Console.WriteLine("error send"); } Console.ReadKey(); }
在http://localhost:8004/#/type/log/dashboard中就能看到日志内容了:
时间: 2024-10-06 01:14:47