Exceptionless 本地部署
前兩天看到了這篇文章免費開源分布式系統日志收集框架 Exceptionless,親身體會了下,確實不錯,按照官方的文檔試了試本地部署,折騰一番后終于成功,記下心得在此,不敢獨享。
本地部署官方wiki
.NET 4.6.1?這個因為我裝了VS2015,就沒有單獨再裝了
Java JDK 1.8+?安裝完后還需配置下Java環境,系統變量添加:JAVA_HOME ?對應?C:\Program Files\Java\jdk1.8.0_102 是安裝jdk的目錄,用戶變量Path 中添加?%JAVA_HOME%\bin; 配置完成后打開cmd,運行
java -version 如果報錯的話有很多種可能,搜索一下會有解決方案,我的就是在C:\Windows\System32 目錄下把java.exe改名成javaa.exe,再次cmd運行就成功了IIS 8+ 這個感覺不是強制的,我win7的IIS 7.5也是可以的
ElasticSearch 1.7.5 (Elasticsearch 2.x is not yet supported) 到連接地址去下載1.7.5版本,人家已經說明2.x的版本不支持,找這個歷史版本得翻好幾頁,大概在第7頁左右,直接給個下載連接:elasticsearch-1.7.5?,下載完后解壓
下載最新的latest Exceptionless release artifact ZIP?,下載后解壓,將目錄中的elasticsearch.yml 復制到到elasticsearch的解壓目錄的bin目錄中,執行elasticsearch目錄中的elasticsearch.bat,看到最后一行有
started 就說明成功了,打開http://localhost:9200/就能看到相關信息,如果es是部署服務的話復制到config目錄中,執行service.bat install|remove|start|stop|manager在IIS中新建一個網站,路徑選擇Exceptionless解壓目錄中的wwwroot目錄,端口這里可以自定義,比如用8004,應用程序池選4.0集成
修改web.config中的ElasticSearchConnectionString為es的站點http://localhost:9200,修改<add key="BaseURL" value="http://localhost:8004/#" />,注意后面的"#"
修改app.config.*.js中的.constant('BASE_URL', 'http://localhost:8004')
打開http://localhost:8004 就能看到登錄頁面了,然后創建賬戶-->創建項目,比如創建一個控制臺項目,這里就會提示怎么使用Exceptionless
ExceptionlessClient.Default.Startup("oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI"),這里的oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI就是api-key
新建控制臺項目,使用?NuGet? 安裝
Install-Package Exceptionless
在Main中寫測試代碼:
//ExceptionlessClient.Default.Startup("qnN5lVebQ7LA94Erkthtkq5z57xX5Wg7ZzafiMdZ");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();Console.WriteLine("error send");}Console.ReadKey();
這里需要注意注釋掉的部分,或者是如下調用:
using Exceptionless.Configuration; [assembly: Exceptionless("oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI", ServerUrl = "http://localhost:8004")]namespace ExceptionTest { ? ?class Program{ ? ? ? ?static void Main(string[] args){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();Console.WriteLine("error send");}Console.ReadKey();}} }
api-key指定兩次,也可以通過。
使用config配置:
<configuration><configSections><section name="exceptionless" type="Exceptionless.ExceptionlessSection, Exceptionless" /></configSections><exceptionless apiKey="oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI" serverUrl="http://localhost:8004" /> </configuration>namespace ExceptionTest { ? ?class Program{ ? ? ? ?static void Main(string[] args){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();Console.WriteLine("error send");}Console.ReadKey();}} }
這樣就不需要在using那指定了。
接下來就可以在http://localhost:8004/#/type/error/dashboard中看到異常信息
相關文章:
免費開源分布式系統日志收集框架 Exceptionless
使用 Exceptionless 作為 Log Server 搭配 NLog 記錄系統日志
使用Elasticsearch 與 NEST 庫 構建 .NET 企業級搜索
為elasticsearch集成一些實用 插件以及配置的開箱即用的版本
原文地址:https://dotblogs.com.tw/joysdw12/2015/10/01/exceptionle
ss_nlog_log_server
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的Exceptionless 本地部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通用业务流水号功能设计
- 下一篇: 如果你也会C#,那不妨了解下F#(6):