磨刀不误砍柴工—Exceptionless搭配log4net记录日志
生活随笔
收集整理的這篇文章主要介紹了
磨刀不误砍柴工—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:?[%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>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记录日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 使用阿里云发送短信
- 下一篇: .NET 6新特性试用 | LINQ功能