.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库

这篇具有很好参考价值的文章主要介绍了.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.在nuget安装下面几个包
Serilog
Serilog.AspNetCore
//用于日志输出到控制台
Serilog.Formatting.Compact
//用于日志输出到mysql数据库
Serilog.Sinks.MySQL
//用于日志输出到文件
Serilog.Sinks.RollingFile
.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库
2.在Program.cs文件配置日志参数,依赖注入

// 配置Serilog
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) // 排除Microsoft的日志
    .Enrich.FromLogContext() // 注册日志上下文
    .WriteTo.Console(new CompactJsonFormatter()) // 输出到控制台
     .WriteTo.MySQL(connectionString: builder.Configuration.GetConnectionString("DbConnectionString"), tableName: "Logs") // 输出到数据库
     .WriteTo.Logger(configure => configure // 输出到文件
                .MinimumLevel.Debug()
                .WriteTo.File(  //单个日志文件,总日志,所有日志存到这里面
                    $"logs\\log.txt",
                    rollingInterval: RollingInterval.Day,
                    outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")
                .WriteTo.RollingFile( //每天生成一个新的日志,按天来存日志
                    "logs\\{Date}-log.txt", //定输出到滚动日志文件中,每天会创建一个新的日志,按天来存日志
                    retainedFileCountLimit: 7,
                    outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
                ))
    .CreateLogger();

builder.Host.UseSerilog(); // Register Serilog with the Host

.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库
别忘了在appsettings.json添加数据库连接字符串

 "ConnectionStrings": {
    "DbConnectionString": "Data Source=48.114.198.199;Database=efcore;AllowLoadLocalInfile=true;User ID=root;Password=root;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;"
  }

.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库
3. 使用日志,在控制器中使用构造函数初始化日志

     [Route("api/[controller]")]
    [ApiController]
    public class UsersController : ControllerBase
    {
        private readonly ILogger<UsersController> _logger;

        public UsersController( ILogger<UsersController> logger)
        {
            _logger = logger;
        }
        [HttpGet("user")]
        public object Get()
        {
            // 记录日志
            _logger.LogInformation($"测试测试");
            return "";
        }
    }

.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库

4.调用api,查看效果
.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库

logs表会自动创建

.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库
logs文件夹下会有两个日志文件,一个是总日志文件,一个是按天创建记录的滚动日志文件
.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库
.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库
.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库文章来源地址https://www.toymoban.com/news/detail-496617.html

到了这里,关于.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 添加.net core web Api 对XML数据格式的支持

    MvcOptions.ReturnHttpNotAcceptable的默认值为false, 此时,如果服务器端不支持http request中Accept的格式值,比如application/xml,则不会报错,返回默认格式的结果 也就是 json 格式的数据。 此时我们需要让他启用。 也就是 设置为true 但是此时 ,如果是XML的请求,则返回的 406 Not Acceptabl

    2024年02月10日
    浏览(43)
  • Logback日志记录只在控制台输出sql,未写入日志文件【解决】

    原因:持久层框架对于Log接口实现方式不一样,日记记录的位置及展示方式也也不一样 可以分别配置到两个环境中,dev用StdOutImpl,prod用Slf4jImpl或者其他的都行,具体需要看他是如何实现的,使用logger对象输出的都是会写入日志的,使用System.out或err的只会在控制台显示,以下是实验

    2024年02月09日
    浏览(63)
  • .NET Web API设置响应输出的Json数据格式的两种方式

    在ASP.NET Core Web API中设置响应输出Json数据格式有两种方式,可以通过添加 System.Text.Json 或 Newtonsoft.Json JSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式,本文示例使用的是新的Minimal API模式。 System.Text.Json System.Text.Json是 .NET Core 3.0 及以上版本中内置的 J

    2024年01月18日
    浏览(43)
  • IntelliJ IDEA 中的控制台输出日志中文乱码之解决办法

    IntelliJ IDEA 中的控制台输出日志中文乱码通常是由于控制台使用的默认字符编码与系统不匹配所致。要解决这个问题,请尝试以下方法: 打开 IntelliJ IDEA, 在顶部菜单栏查看 Run/Debug Configurations 列表。这是您项目中所使用的配置列表。 选择您要修改的 Run/Debug Configuration。如果有

    2024年02月08日
    浏览(74)
  • Eclipse控制台输出log4j日志乱码解决

    1. 出现乱码可能是编码格式对应不起来,主要是Eclipse控制台编码和log4j编码的匹配 log4j.properties      主要是查看这两个地方编码一致不一致,如果不一致则手动更改成一致编码,GBK或UTF-8

    2024年02月15日
    浏览(66)
  • windows下tomcat控制台按天输出catalina.out日志

    windows服务器情况下,无法和linux服务器一样,启动web服务之后,直接tail查看日志,而windwos控制台的输出空间有限,如果遇到大量错误的情况下,console日志刷新太快,无法看到首次错误是在哪里出现的,会产生很多不必要的麻烦,所以从网上查找了windows控制台信息输出到文件

    2024年02月05日
    浏览(54)
  • springboot日志使用 SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    还是直接上代码 @Slf4j 这玩意 默认支持 不用引入 yml 配置文件 下面分享 xml 方式 在 资源目录下创建 logback-spring.xml 粘贴走 即可 重启 看控制台变化 还有磁盘 有没有写入 坑 : 我在创建的时候 发现 xml 没有生效 排查了半天 发现 在创建 logback-spring.xml 这个文件的时候 我不是手

    2024年04月22日
    浏览(80)
  • 23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    就是springboot的默认的日志依赖实现。创建项目的时候存在这个依赖里面。 下面的日志实现就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是门面,Logback是实现 设置日志的级别,可通过以下方式: ▲ 改变Spring Boot的核心日志级别 ▲ 改变程序组件(包括所有各种框架)的核心日志级别

    2024年02月03日
    浏览(61)
  • 关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?

    问题描述: 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候,把这个文件的位置改变了。导致,最后输出IDEA的时候,不会把日志也打印出来。 检查IDEA配置; D:work_softtomcat_userTomcat10.0bin 在此目录下,找到;catalina.bat文件 检查是否改变了,原先我的配置里面

    2024年02月07日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包