章目录
一、使用步骤
1.免费账号
2.登录并创建项目
3. 获得属于这个项目的API密钥
4. 安装nuget包
5. 创建一个类库,方便后期公用方法统一封装,结构如下
6. 封装一个接口和一个实现类
7. StudyCore项目下的Startup类修改
8. Jmeter运行测试
一、使用步骤
1.免费账号
2.登录并创建项目
1.选择类型,会提示你需要安装的包和怎么使用
3. 获得属于这个项目的API密钥
4. 安装nuget包
代码:
Install-Package Exceptionless.AspNetCore
1
5. 创建一个类库,方便后期公用方法统一封装,结构如下
6. 封装一个接口和一个实现类
ILogger代码:
public interface ILogger
{
void Trace(string message, params string[] args);
void Debug(string message, params string[] args);
void Info(string message, params string[] args);
void Warn(string message, params string[] args);
void Error(string message, params string[] args);
}
1
2
3
4
5
6
7
8
ExceptionLessLogger代码:
public class ExceptionLessLogger : ILogger
{
/// <summary>
/// Trace
/// </summary>
public void Trace(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Trace).AddTags(tags).Submit();
}
/// <summary>
/// Debug
/// </summary>
public void Debug(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Debug).AddTags(tags).Submit();
}
/// <summary>
/// Info
/// </summary>
public void Info(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit();
}
/// <summary>
/// Warn
/// </summary>
public void Warn(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Warn).AddTags(tags).Submit();
}
/// <summary>
/// Error
/// </summary>
public void Error(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Error).AddTags(tags).Submit();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
7. StudyCore项目下的Startup类修改
Startup代码:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
//注入接口,方便后期的调用
services.AddSingleton(typeof(CommonTool.Service.ILogger), typeof(ExceptionLessLogger));
}
1
2
3
4
5
6
7
WeatherForecastController调用代码:
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public CommonTool.Service.ILogger Logger { get; }
//构造函数注入
private readonly InterfaceTest _efserver;
public WeatherForecastController(InterfaceTest efserver,ILogger<WeatherForecastController> logger, CommonTool.Service.ILogger loggerex)
{
_logger = logger;
_efserver = efserver;
Logger = loggerex;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
_logger.LogInformation("asdadsadsa");
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
[HttpGet]
[Route("Gets")]
public async Task<string> Gets()
{
try
{
throw new Exception();
}
catch (Exception ex)
{
ex.ToExceptionless().Submit();
}
_logger.LogInformation(string.Format("Gets方法调用了"));
_logger.LogWarning(string.Format("Gets方法调用了"));
_logger.LogError(string.Format("Gets方法调用了"));
_logger.LogDebug(string.Format("Gets方法调用了"));
Logger.Trace($"User Login Successfully. Time:{DateTime.Now.ToString()}", "Tag1", "Tag2");
Logger.Debug($"User Login Successfully. Time:{DateTime.Now.ToString()}", "Tag1", "Tag2");
Logger.Info($"User Login Successfully. Time:{DateTime.Now.ToString()}", "Tag1", "Tag2");
Logger.Warn($"User Login Successfully. Time:{DateTime.Now.ToString()}", "Tag1", "Tag2");
Logger.Error($"User Login Successfully. Time:{DateTime.Now.ToString()}", "Tag1", "Tag2");
return await _efserver.HelloWord();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
8. Jmeter运行测试
————————————————
原文链接:https://blog.csdn.net/qq_36819973/article/details/108737038