3

我在我的网站和 Web 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 堆栈有技巧吗?

4

1 回答 1

1

有几件事浮现在脑海中-

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

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

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

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

SelfLog.Out = Console.Error;

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

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

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

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

于 2014-07-30T07:48:23.643 回答