标签: getseq

在调用Log.CloseAndFlush()之前,Serilog不会将日志写入Seq

从WinForm/Web应用程序登录时,Serilog和Seq工作正常.我只在使用控制台应用程序时遇到问题.没有写, Log.CloseAndFlush()它就不起作用了.以下是我的LoggerConfiguration

Log.Logger = new LoggerConfiguration()
                .WriteTo.Seq("http://localhost:5341")
                .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

有没有办法记录而不调用,Log.CloseAndFlush()以便它与控制台应用程序中的seq,serilog一起使用.

serilog getseq

5
推荐指数
1
解决办法
4137
查看次数

如何使用serilog自定义异常输出

我正在使用Serilog作为我的日志框架(Seq作为我的日志接收器).记录异常时,我使用的是:

log.Error(ex, "Operation Failed");
Run Code Online (Sandbox Code Playgroud)

我的应用程序大量使用async/await方法.当发生未处理的异常时,堆栈跟踪很难读取.有一个nuget包可以清理异步堆栈跟踪(https://github.com/aelij/AsyncFriendlyStackTrace).这将创建一个扩展方法,使您可以访问已修改/清除的堆栈跟踪:

ex.ToAsyncString()
Run Code Online (Sandbox Code Playgroud)

我希望能够使用此库在写入Seq之前拦截堆栈跟踪,而是记录清理/修改的堆栈跟踪.

是否有一种方法可以使用Serilog/Seq来控制发送到日志接收器的错误字符串的确切输出?

c# logging serilog getseq

4
推荐指数
1
解决办法
1054
查看次数

Serilog with Seq - 添加属性而不放置在消息文本中

我有一个具有多个属性的对象,这些属性与我网站上刚刚发生的事件相关。

我想记录此事件,并将其每个属性显示在 Seq 中 - 作为属性。但是想要从实际的日志消息文本中省略大部分属性 - 所以我不希望它们出现在消息模板中。v

如果我这样做:

        var logInfo= new LogInfo() {Foo = 1, Bar= "Pending"};
        logger.Information("{@event}", logInfo);
Run Code Online (Sandbox Code Playgroud)

在 Seq 中直接针对日志亮起的唯一属性是 @event 属性。它实际上看起来像这样:

在此处输入图片说明

所以我试过这个:

        var enricher = new DnnLogInfoEnricher(logInfo);
        using (LogContext.PushProperties(enricher))
        {
            Log.Logger.Information("Event: {logInfo}", logInfo.LogTypeKey, logInfo.Exception);
        }
Run Code Online (Sandbox Code Playgroud)

但我对这种方法的担忧是,由于此方法将触发大量次数,因此我不想每次都创建一个新的丰富对象实例 - 因为我喜欢保持正在创建的对象数量通常尽可能低。只是因为我担心 GC 影响(也许我的担忧是没有根据的?)。

这是实现我想要的(即使用浓缩器)的正确/正确方法还是我错过了什么?

干杯!

serilog getseq seq-logging

3
推荐指数
1
解决办法
1522
查看次数

标签 统计

getseq ×3

serilog ×3

c# ×1

logging ×1

seq-logging ×1