Serilog + Seq 搭建日志平台

Docker部署Seq日志平台

Dokce部署

镜像地址:

https://hub.docker.com/r/datalust/seq

pull镜像

docker pull datalust/seq

设置seq Admin密码,起站点用到的密码必须要Hash

SeqPwd=$(echo '123456' | docker run --rm -i datalust/seq config hash) 

起站点

# 新建磁盘日志目录文件夹
mkdir -p /docker/seq/data

docker run --name seq -d -e ACCEPT_EULA=Y -e SEQ_FIRSTRUN_ADMINPASSWORDHASH="$SeqPwd"  -v /docker/seq/data:/data --memory=512m --memory-swap=512m -e SEQ_CACHE_SYSTEMRAMTARGET=0 -p 8001:80 -p 5341:5341 datalust/seq
参数 备注
SEQ_FIRSTRUN_ADMINPASSWORDHASH Seq平台登录的admin密码,必须经过Hash处理后的
-v /docker/seq/data:/data 磁盘挂载,日志持久化
memory 限制最大内存
SEQ_CACHE_SYSTEMRAMTARGET 不使用缓存
-p 8001:80 -p 5341:5341 80映射端口是http端口,5341是gRPC端口。80是UI管理界面,5341是给程序调用的

容器Run起来之后,浏览器访问http://192.168.1.5:8001/ Seq登录界面。使用刚才配置的账号密码admin+123456登录

登录之后就可以看到日志面板

创建Api key

登录seq管理平台,点击"setting",第一个菜单就是 Api Key,点击“Add Api Key”进行添加

Serilog记录日志并输出至Seq

Serilog 相关文档参考这篇博客
新建一个ASP.NET Core Web项目,添加以下Neget包

Serilog.AspNetCore
Serilog.Sinks.Seq

Program.cs添加Serilog并添加Seq相关配置

using Serilog;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();

builder.Host.UseSerilog((hostingContext, loggerConfiguration) =>
{
    loggerConfiguration
    .Enrich.FromLogContext()
    .WriteTo.Console()
    .WriteTo.Debug()
    //添加Seq
    .WriteTo.Seq("http://192.168.1.5:5341",  apiKey: "KIFLPG...");
});

var app = builder.Build();

app.UseAuthorization();

//添加中间件简化请求日志记录
app.UseSerilogRequestLogging();

app.MapControllers();

app.Run();

WeatherForecastController.cs写入日志并访问API

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;

namespace WebApplication1.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet]
        public string Get()
        {
            _logger.LogInformation("我爱中国");
            _logger.LogInformation(Guid.NewGuid().ToString());
            return Guid.NewGuid().ToString();
        }
    }
}

Seq面板查看日志

posted @ 2022-11-08 13:39  雨水的命运  阅读(1377)  评论(0编辑  收藏  举报