忘忧的小站

  • 首页
  • 文章归档
  • 日志
  • 关于页面

  • 搜索
分布式索引 索引 全文搜索 Lucene.Net GPS 音视频 过滤 AOP 时区 升级 ABP.Zero 数据备份 linux 阿里云盘 aliyunpan 面试题 Signalr S 汉字 css html 前端 拼音键盘 在线键盘 uniapp .Net Core XMLRPC Serilog LOKI Nlog 分布式日志 加密 总结 人生 Asp.Net Core Swagger Web Element-plus Quasar 匹配 JavaScript 正则 .Net 后台 架构师 Redis EF CORE MySQL 自考 英语 集群 Jenkins CI/DI 内网穿透 代理 ABP 学习 后端 软考

Asp.Net Core LOKI 轻量级日志服务实战 Serilog

发表于 2022-04-22 | 分类于 .Net Core | 0 | 阅读次数 1368

docker-compose部署LOKI

docker-compose.yaml

version: "3"

networks:
  loki:

services:
  loki:
    image: grafana/loki:2.5.0
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:2.5.0
    volumes:
      - /var/log:/var/log
    command: -config.file=/etc/promtail/config.yml
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    networks:
      - loki

当前目录执行命令

 docker-compose up -d

配置数据源

启动后使用浏览器访问 http://localhost:3000

image.png

账号admin 密码admin 登录成功后会提示修改密码

image.png

配置所用数据库
image.png
image.png
image.png
image.png

黄色代表我们配置成功

配置Asp.Net Core程序

使用到的库

  • Serilog
  • Serilog.Exceptions
  • Serilog.Sinks.Grafana.Loki

初始化NLog时配置

image.png

Code

 public static IWebHostBuilder UseSerilogDefault(this IWebHostBuilder hostBuilder)
        {

            var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
            var configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{environmentName}.json", optional: false, reloadOnChange: true)
                .AddEnvironmentVariables()
                .Build();
            Log.Logger = new LoggerConfiguration()
                .Enrich.FromLogContext()
                .Enrich.WithExceptionDetails()
                .Enrich.WithMachineName()
                .WriteTo.Debug()
                .WriteTo.Console()
                .WriteTo.GrafanaLoki("http://http:localhost:3100/")
                // .WriteTo.Elasticsearch(ConfigureElasticSink(configuration, environmentName))
                .Enrich.WithProperty("Client", "appClient")
                .ReadFrom.Configuration(configuration)
                .CreateLogger();
            
            hostBuilder.UseSerilog();

            return hostBuilder;

        }

最终效果

日志浏览

image.png

筛选条件

image.png

效果图
image.png

  • 本文作者: 忘忧
  • 本文链接: /archives/83
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 分布式日志 # LOKI # Serilog
Asp.Net Core LOKI 轻量级日志服务实战 NLog
uniapp 原生echarts组件封装
  • 文章目录
  • 站点概览
忘忧

忘忧

君子藏器于身,待时而动,何不利之有

44 日志
6 分类
60 标签
RSS
Github E-mail StackOverflow
Creative Commons
0%
© 2025 忘忧
由 Halo 强力驱动