using Exceptionless;
using Exceptionless.Logging;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Core.RabbitMQBus.Log
{
///
/// ExceptionLess日志实现
///
public class ExceptionLessLogger : ILoggerHelper
{
///
/// 记录trace日志
///
/// 信息来源
/// 日志内容
/// 添加标记
public void LogTrace(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Trace).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Trace);
}
}
///
/// 异步记录trace日志
///
/// 信息来源
/// 日志内容
/// 添加标记
/// Task
public async Task LogTraceAsync(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Trace).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Trace);
}
await Task.CompletedTask;
}
///
/// 记录debug信息
///
/// 信息来源
/// 日志内容
/// 标记
public void LogDebug(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Debug).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Debug);
}
}
///
/// 记录debug信息
///
/// 信息来源
/// 日志内容
/// 标记
/// Task
public async Task LogDebugAsync(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Debug).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Debug);
}
await Task.CompletedTask;
}
///
/// 记录Info日志
///
/// 信息来源
/// 日志内容
/// 标记
public void LogInfo(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Info).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Info);
}
}
///
/// 异步记录Info日志
///
/// 信息来源
/// 日志内容
/// 标记
/// Task
public async Task LogInfoAsync(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Info).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Info);
}
await Task.CompletedTask;
}
///
/// 记录警告日志
///
/// 信息来源
/// 日志内容
/// 标记
public void LogWarn(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Warn).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Warn);
}
}
///
/// 异步记录警告日志
///
/// 信息来源
/// 日志内容
/// 标记
/// Task
public async Task LogWarnAsync(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Warn).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Warn);
}
await Task.CompletedTask;
}
///
/// 记录错误日志
///
/// 信息来源
/// 日志内容
/// 标记
public void LogError(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Error).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Error);
}
}
///
/// 异步记录错误日志
///
/// 信息来源
/// 日志内容
/// 标记
/// Task
public async Task LogErrorAsync(string source, string message, params string[] args)
{
if (args != null && args.Length > 0)
{
ExceptionlessClient.Default.CreateLog(source, message, LogLevel.Error).AddTags(args).Submit();
}
else
{
ExceptionlessClient.Default.SubmitLog(source, message, LogLevel.Error);
}
await Task.CompletedTask;
}
///
/// 提交异常日志
///
/// 异常对象
public void LogException(Exception ex)
{
ex.ToExceptionless().Submit();
}
///
/// 异步提交异常日志
///
/// 异常对象
/// Task
public async Task LogExceptionAsync(Exception ex)
{
ex.ToExceptionless().Submit();
await Task.CompletedTask;
}
}
}