3.2 日志

举报
步步为营 发表于 2023/02/14 11:43:03 2023/02/14
【摘要】 在项目开发中,需要经常使用日志存储网站的云心信息,.net core使用日志非常简单。

3.2 日志

基本使用

NuGet安装Microsoft.Extensions.Logging及Microsoft.Extensions.Logging.Consloe

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;

ServiceCollection services = new ServiceCollection();
//向容器中增加注册日志服务
services.AddLogging(logBuilder => { logBuilder.AddConsole(); });
using (var sp = services.BuildServiceProvider())
{
    //获得一个用于输出日志的对象,泛型类型一般使用当前的类,此时当前的类是Program
    //这样在输出日志的时候会显示类名
	var logger = sp.GetRequiredService<ILogger<Program>>();
	logger.LogWarning("这是一条警告消息");
	logger.LogError("这是一条错误消息");
	string age = "abc";
	logger.LogInformation("用户输入的年龄:{0}", age);
	try
	{
		int i = int.Parse(age);
	}
	catch (Exception ex)
	{
		logger.LogError(ex, "解析字符串为int失败");
	}
}
//LogTrace,LogDebug,LogInformation,LogWarning,LogError,LogCritical
//严重等级依次增高

使用NLog输出到文件

  1. NuGet安装NLog.Extensions.Logging

  2. 在官网拷贝配置文件,注意设置属性:如果较新则复制。
    NLog官网
    配置文件解释:rules节点下可以添加多个logger,每个logger都有名字(name属性),name是通配符格式的。2、logger节点的minlevel属性和maxlevel属性,表示这个logger接受日志的最低级别和最高级别。3、日志输出时,会从上往下匹配rules节点下所有的logger,若发现当前日志的分类名符合这个logger的name的通配符,就会把日志输出给这个logger。如果匹配多个logger,就把这条日志输出给多个logger。但是如果一个logger设置了final=“true”,那么如果匹配到这个logger,就不继续向下匹配其他logger了。

  3. services.AddLogging(logBuilder => { logBuilder.AddNLog(); });
    知识点:
    archiveAboveSize为“单个日志文件超过多少字节就把日志存档”,单位为字节,这样可以避免单个文件太大,如果不设定maxArchiveFiles参数,则文件日志存档文件的数量会一直增加,而如果设定maxArchiveFiles参数后,则最多保存maxArchiveFiles指定数量个数的存档文件,旧的会被删掉;当然也可以不设置maxArchiveFiles参数,而设置maxArchiveDays参数,这样可以设定保存若干天的日志存档。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。