在 WCF 中使用 Serilog
Posted
技术标签:
【中文标题】在 WCF 中使用 Serilog【英文标题】:Using Serilog from within WCF 【发布时间】:2014-09-21 16:22:11 【问题描述】:我在我的网站和网络 API 中使用 Serilog,一切都很好。
现在我想。
但是当我新建一个 LoggerConfiguration 并从 WCF 中创建一个记录器时,日志记录似乎不起作用?例如,没有任何内容被输出到文本文件。
var seriLog = new LoggerConfiguration()
.WriteTo.File(@"C:\Serilogs\myapp.txt")
.CreateLogger();
seriLog.Debug("log message");
最终我想从 WCF 服务中写入 Seq。
我错过了什么或做错了什么?
有没有人得到一些工作代码示例来说明如何做到这一点?
/Seq 堆栈是否有技巧?
【问题讨论】:
【参考方案1】:我想到了几件事-
首先,这里的设置代码是否只执行一次,即在应用程序启动时,所以只有一个记录器指向文本文件?一次只有一个记录器实例可以使用该文件。
接下来,运行的进程是否有访问文件的权限?
最后,文件是否打开,例如在记事本或其他可能将其锁定的应用中?
如果这些都没有激发任何想法,您可以在配置记录器之前设置 Serilog 的自日志:
SelfLog.Out = Console.Error;
这应该会显示在 VS 调试器中,因此如果 Serilog 捕获并抑制任何异常,您应该会看到它们。
如果您无法在调试器中运行它,请尝试:
SelfLog.Out = File.OpenText(@"C:\loglog.txt");
有时我发现在启用“中断所有异常”的调试器下运行应用程序也是一种快速了解问题的方法(Ctrl-D,E -> CLR Exceptions [x] Throw,[ x] 未处理)。
【讨论】:
尼克...现在一切都好...这实际上是我试图记录的一个解构对象的问题。我所看到的只是 WCF 超时......以上是关于在 WCF 中使用 Serilog的主要内容,如果未能解决你的问题,请参考以下文章
如何在 appsettings.json 中使用多个单独的记录器 Serilog 文件
在 ASP.NET Core 6.0 中使用 Serilog