【问题标题】:Using Serilog from within WCF在 WCF 中使用 Serilog
【发布时间】:2014-09-21 16:22:11
【问题描述】:

我在我的网站和网络 API 中使用 Serilog,一切都很好。

现在我想在 WCF 中使用 Serilog。

但是当我新建一个 LoggerConfiguration 并从 WCF 中创建一个记录器时,日志记录似乎不起作用?例如,没有任何内容被输出到文本文件。

var seriLog = new LoggerConfiguration()
    .WriteTo.File(@"C:\Serilogs\myapp.txt")
    .CreateLogger();

seriLog.Debug("log message");

最终我想从 WCF 服务中写入 Seq。

我错过了什么或做错了什么?

有没有人得到一些工作代码示例来说明如何做到这一点?

在 WCF 中使用 Serilog/Seq 堆栈是否有技巧?

【问题讨论】:

    标签: wcf serilog


    【解决方案1】:

    我想到了几件事-

    首先,这里的设置代码是否只执行一次,即在应用程序启动时,所以只有一个记录器指向文本文件?一次只有一个记录器实例可以使用该文件。

    接下来,运行的进程是否有访问文件的权限?

    最后,文件是否打开,例如在记事本或其他可能将其锁定的应用中?

    如果这些都没有激发任何想法,您可以在配置记录器之前设置 Serilog 的自日志:

    SelfLog.Out = Console.Error;
    

    这应该会显示在 VS 调试器中,因此如果 Serilog 捕获并抑制任何异常,您应该会看到它们。

    如果您无法在调试器中运行它,请尝试:

    SelfLog.Out = File.OpenText(@"C:\loglog.txt");
    

    有时我发现在启用“中断所有异常”的调试器下运行应用程序也是一种快速了解问题的方法(Ctrl-D,E -> CLR Exceptions [x] Throw,[ x] 未处理)。

    【讨论】:

    • 尼克...现在一切都好...这实际上是我试图记录的一个解构对象的问题。我所看到的只是 WCF 超时......
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多