Exceptionless(二) - 使用进阶 (2)

进程外运行作业
默认情况下,所有作业都在当前的Web进程中运行。如果发现事件处理开始变慢的时候,可以启动并扩展多个作业实例。通过在进程外运行作业,可以确保所有作业是否正常运行。

首先是要配置安装Redis,这样可以保证Exceptionless与作业之间能够进行通信

更新Web.config中的RunJobsInProcess值为false

更新作业的配置,有两种方法可选:

使用环境变量进行配置Exceptionless。新增环境变量Exceptionless_{SETTING NAME} (例如: Exceptionless_BaseURL, Exceptionless_ElasticSearchConnectionString)。这是官方推荐的方法,因为它更简单,而且当部署到azure时非常好用

打开App_Data\jobs文件夹,然后按照在根目录中Web.config的配置,再重新配置每个作业的xxx.exe.config。

在每个作业文件夹中都有一个run.bat文件,双击它就会运行这个作业。当然,也可以将这些作业全部设置为Windows服务在后台运行

更多设置
除了上面提到的设置,Exceptionless还支持很多自定义配置,下面是全部的设置列表,大家可根据自己的需要进行定制
列表按照这个格式进行排列:设置项 (数据类型,默认值)

EnableSSL (bool) BaseURL (string) InternalProjectId (string, "54b56e480ef9605a88a13153") WebsiteMode (WebsiteMode, "Dev") AppScope (string, String.Empty) TestEmailAddress (string) AllowedOutboundAddresses (List<string>, "exceptionless.io") RunJobsInProcess (bool, true) BotThrottleLimit (int, 25) ApiThrottleLimit (int, Int32.MaxValue) EventSubmissionDisabled (bool) MaximumEventPostSize (long, 1000000) MaximumRetentionDays (int, 180) EnableDailySummary (bool) MetricsServerName (string, "127.0.0.1") MetricsServerPort (int, 8125) EnableMetricsReporting (bool) RedisConnectionString (string) EnableRedis (bool) DisableSnapshotJobs (bool) DisableIndexConfiguration (bool) ElasticSearchConnectionString (string) ElasticSearchNumberOfShards (int, 1) ElasticSearchNumberOfReplicas (int) EnableElasticsearchTracing (bool) LdapConnectionString (string) EnableActiveDirectoryAuth (bool) EnableSignalR (bool, true) Version (string) EnableIntercom (bool) IntercomAppSecret (string) EnableAccountCreation (bool, true) MicrosoftAppId (string) MicrosoftAppSecret (string) FacebookAppId (string) FacebookAppSecret (string) GitHubAppId (string) GitHubAppSecret (string) GoogleAppId (string) GoogleAppSecret (string) GoogleGeocodingApiKey (string) EnableBilling (bool) StripeApiKey (string) StorageFolder (string) AzureStorageConnectionString (string) EnableAzureStorage (bool) BulkBatchSize (int, 1000) SmtpHost (string) SmtpPort (int, 587) SmtpEnableSsl (bool, true) SmtpUser (string) SmtpPassword (string) 更多日志类型

Exceptionless除了支持记录Exception,也可以记录LogMessage、Broken Links 、Feature Usages

LogMessage
LogMessage支持多种级别的日志信息

Other

Trace

Debug

Info

Warn

Error

Fatal

Off

用法也很简单,直接在你想要记录日志的地方直接加一句

ExceptionlessClient.Default.CreateLog("日志信息", LogLevel.Debug).AddTags("tag1", "tag2").Submit();

所以我们在应用的过程中,可以添加一个统一的接口

public interface ILogger { void Debug(string message, params string[] tags); void Error(string message, params string[] tags); void Fatal(string message, params string[] tags); void Info(string message, params string[] tags); void Off(string message, params string[] tags); void Other(string message, params string[] tags); void Trace(string message, params string[] tags); void Warn(string message, params string[] tags); } using Exceptionless; using Exceptionless.Logging; public class ExceptionlessLogger : ILogger { public void Debug(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Debug).AddTags(tags).Submit(); } public void Error(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Error).AddTags(tags).Submit(); } public void Fatal(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Fatal).AddTags(tags).Submit(); } public void Info(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit(); } public void Off(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Off).AddTags(tags).Submit(); } public void Other(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Other).AddTags(tags).Submit(); } public void Trace(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Trace).AddTags(tags).Submit(); } public void Warn(string message, params string[] tags) { ExceptionlessClient.Default.CreateLog(message, LogLevel.Warn).AddTags(tags).Submit(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfdd.html