zoukankan      html  css  js  c++  java
  • Nlog配置Seq日志服务

    什么是Seq?

    正如我们使用不同的日志框架来为我们的应用程序收集各类日志信息, 这些信息可以有效的帮助我们快速诊断应用程序中发生的各类问题, 尽管如此,
    对于常见的日志框架而言, 它们往往只是解决了日志功能快速集成以及如何配置输出保存等功能。
    对于那些不间断运行的应用程序而言, 日志的存储和维护工作会变得异常麻烦, 如果想灵活的在不同时间段去查找日志, 根据不同的日志类型快速的定位问题,
    这会变得非常困难,所以为了解决这些问题, Seq就登场了。Seq提供了收集应用程序日志、搜索过滤、警告以及图表分析等功能。

    如何使用Seq?

    如果你使用了类似Nlog、Serilog等日志框架, 那很棒, 对于你来说,你几乎可以很少的配置它即可快速的实现Seq集成。Seq提供了Nlog、Serilog、Log4Net等框架的Seq扩展包。

    首先, 你需要安装且配置好Seq, 官方提供了两种方式快速创建Seq服务

    出于演示的目的, 这里直接安装Docker镜像来演示:

    • 下载Seq Docker镜像
      docker pull datalust/seq

    • 启动Seq实例, 本地端口5341
      docker run --name seq -d --restart unless-stopped -e ACCEPT_EULA=Y -p 5341:80 datalust/seq:latest

    • 打开浏览器输入,即可

    完成Seq的配置之后, 接下来在应用程序当中安装Nlog、Nlog.Config、NLog.Targets.Seq。

    打开Nlog.Config,配置Seq:

    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
          autoReload="true"
          throwExceptions="false"
          internalLogLevel="Off" internalLogFile="c:	emp
    log-internal.log">
    
      <extensions>
        <add assembly="NLog.Targets.Seq"/>
      </extensions>
      
      <targets>
        <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
                layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}"  />
    
        <target name="seq" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="2000">
          <target xsi:type="Seq" serverUrl="http://localhost:5341" apiKey="" />
        </target>
      </targets>
    
      <rules> 
        <logger name="*" minlevel="Debug" writeTo="seq" /> 
      </rules>
    </nlog>
    

    以上完成了Nlog的配置, 当应用程序输出Debug的时候, 即可将信息写入至Seq。

    应用程序调用Debug输出:

    private void Button_Click_3(object sender, RoutedEventArgs e)
            {
                logger.LogDebug("Button_Click_3");
            }
    

    再次浏览器打开Seq的服务地址, 会记录所有点击Debug的详细信息, 如下所示:

    Seq的其他功能

    日志保存到Seq服务器已经完成,剩下的工作就是如果使用Seq集成的搜索、过滤、图标分析等功能, 来快速诊断应用程序当中的警告、错误信息等,
    通过不同的日志分析, 我们很可能快速的预知存在问题所在, 这些甚至可以在客户未察觉异常之前, 我们可以快速的做出响应。

    关于Seq的更多使用方法,及高级用法, 可参考官方文档,考虑Seq也是一个收费性质的框架,就不做过多的介绍,不过有兴趣的可以深入了解。

  • 相关阅读:
    清除浮动的方式
    网页在线测试工具
    仿京东左侧菜单 hover效果-简易demo
    原生js,插入元素
    知识补漏
    css3动画
    java微信开发(wechat4j)——支持微信JS-SDK的jsapi_ticket中控服务器
    java微信开发(wechat4j)——access_token中控服务器实现
    java微信开发(wechat4j)——wechat4j配置文件解读
    java微信开发(wechat4j)——设置响应微信参数
  • 原文地址:https://www.cnblogs.com/zh7791/p/15166265.html
Copyright © 2011-2022 走看看