zoukankan      html  css  js  c++  java
  • .Net Core的Log方式:Serilog+Kibana

    前言

    Serilog,支持对象,把log数据序列化成Json,好用方便,容易拓展。Github: https://github.com/handsomeyao77/serilog-sinks-elasticsearch

    读取配置文件的

    配置文件分为App.config和appsetting.json两种。
    读取appsettings.json,主要是Web app 类型,首先在服务启动时要注入json文件:

    读取配置:

    配置App.config,高亮部分是必要的key:

    读取配置:

    当然,有时候可以Hard code,这里分享一种方式:

    Serilog的常见类型

    1.Information.

    2.Debug.

    3.Error.

    因为LogEventBase作为基类,可以继承拓展一下。

    public class LogEventBase
    {
        [FieldOrder(0)]
        public LogEventType EventType { get; set; }
    
        [FieldOrder(1)]
        public string Role { get; set; }
    
        [FieldOrder(2)]
        public string RoleInstance { get; set; }
    
        [FieldOrder(3)]
        public string Ip { get; set; }
    
        [FieldOrder(4)]
        public int Port { get; set; }
    
        [FieldOrder(5)]
        public DateTime Timestamp => DateTime.UtcNow;
    
        [FieldOrder(6)]
        public string Message { get; set; }
    
        [FieldOrder(7)]
        public IActivity Activity { get; set; }
    
        [FieldOrder(8)]
        public string EnvironmentName => Environment.MachineName;
    }
    

    根据业务拓展:

    public class LatencyEvent : LogEventBase
    {
        [FieldOrder(9)]
        public long Latency { get; set; }
    
        [FieldOrder(10)]
        public string SearchId { get; set; }
    }
    
    public class SearchEvent : LogEventBase
    {
        [FieldOrder(9)]
        public string SearchId { get; set; }
        [FieldOrder(10)]
        public string SearchString { get; set; }
    }
    
    public class LuisEvent : LogEventBase
    {
        [FieldOrder(9)]
        public LuisResult LuisResult { get; set; }
    }
    
    public class ExceptionEvent : LogEventBase
    {
        [FieldOrder(10)]
        public Exception Exception { get; set; }
    }
    

    LogEventType是比较实用的,在kibana查看log是作为过滤条件能节省很多时间。

    使用方法

    1.Information

    2.Error

    Kibana

    打开kibana主页,选择对应的template,可以说非常好用的log工具。可以按照log的时间,或者输入查询条件:

    或者按照LogEventType,可以快速定位到target:

  • 相关阅读:
    MongoDB数据创建与使用
    python库安装方法及下载依赖库
    java开发基础知识学习
    wifi破解基础及工具的使用
    Markdonw基本语法学习
    toj 4353 Estimation(树状数组+二分查找)
    POJ 1694 An Old Stone Game【递归+排序】
    POJ 2092 Grandpa is Famous【水---找出现第二多的数】
    POJ 2993 Emag eht htiw Em Pleh【模拟画棋盘】
    POJ 1068 Parencodings【水模拟--数括号】
  • 原文地址:https://www.cnblogs.com/shy-huang/p/9577735.html
Copyright © 2011-2022 走看看