磨刀不误砍柴工—Exceptionless搭配log4net记录日志
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磨刀不误砍柴工—Exceptionless搭配log4net记录日志相关的知识,希望对你有一定的参考价值。
Exceptionless专注于.net平台提供实时错误和日志报告。主要包括:错误通知、智能分组异常、详细错误报告堆栈跟踪、支持离线、UI查看重要错误和确定优先级、仪表板上的统计信息和趋势、对异常标记为已修复,监视回归、将事件标记为关键等。主要是用于展示、分析;
log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。要想获取最新版本的log4net组件库,可以到官方网站http://logging.apache.org/log4net/下载。现在的最新版本是1.2.10。主要用于自定义收集日志;
下面的例子展示了如何利用log4net配合Exceptionless记录日志 。配置文件
<?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: [%propertyNDC] - %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>
Startup
public Startup(IConfiguration configuration)
Configuration = configuration;
//repository = LogManager.CreateRepository("NETCoreRepository");
指定配置文件
//XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
app.UseExceptionless()
ExceptionlessClient.Default.Configuration.ApiKey = Configuration.GetSection("Exceptionless:ApiKey").Value;
// ExceptionlessClient.Default.Configuration.ServerUrl = Configuration.GetSection("Exceptionless:ServerUrl").Value;
app.UseExceptionless();
使用
//public IActionResult Index()
//
// try
//
// // Submit logs
// ExceptionlessClient.Default.SubmitLog("Logging made easy");
// // You can also specify the log source and log level.
// // We recommend specifying one of the following log levels: Trace, Debug, Info, Warn, Error
// ExceptionlessClient.Default.SubmitLog(typeof(Program).FullName, "This is so easy", "Info");
// ExceptionlessClient.Default.CreateLog(typeof(Program).FullName, "This is so easy", "Info").AddTags("Exceptionless").Submit();
// // Submit feature usages
// ExceptionlessClient.Default.SubmitFeatureUsage("MyFeature");
// ExceptionlessClient.Default.CreateFeatureUsage("MyFeature").AddTags("Exceptionless").Submit();
// // Submit a 404
// ExceptionlessClient.Default.SubmitNotFound("/somepage");
// ExceptionlessClient.Default.CreateNotFound("/somepage").AddTags("Exceptionless").Submit();
// // Submit a custom event type
// ExceptionlessClient.Default.SubmitEvent(new Event Message = "Low Fuel", Type = "racecar", Source = "Fuel System" );
// throw new Exception("ExceptionDemo 的异常");
//
// catch (Exception ex)
//
// ex.ToExceptionless().Submit();
//
// return View();
//
以上是关于磨刀不误砍柴工—Exceptionless搭配log4net记录日志的主要内容,如果未能解决你的问题,请参考以下文章