问题标签 [serilog-sinks-file]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
260 浏览

c# - 使用 serilog 为单独的线程单独的日志文件

我有一个具有多个线程的 .Net Worker Service 应用程序。我想将每个线程记录到单独的文件中,以便更容易阅读日志。有什么想法可以实现吗?

0 投票
3 回答
653 浏览

c# - 在 Windows 窗体应用程序中查看 Serilog 日志

我有一个 C# Windows 窗体应用程序,它引用了一个使用 SeriLog 记录事件的 DLL(托管代码)。SeriLog 记录器是在 Windows 窗体(主)应用程序中定义的,因此我可以控制我正在使用的接收器类型。目前我只是登录到本地文本文件。

我的问题:有没有一种优雅的方式可以让我在应用程序运行时实时查看 Listbox 或类似 WinForms 控件中的日志?目前我能看到的唯一方法是每隔几秒钟读取一次日志文件并显示最新的项目。但我确信可能有一种更优雅的方式来捕获最后一个或两个记录的项目?

0 投票
1 回答
120 浏览

azure-functions - 如何在 Azure Function .NET 3.1 中将 Serilog 导入 Azure 日志流

我能够将 Serilog 放入控制台,但在发布到 Azure Functions 后,使用Serilog.log.information()etc 的日志消息不会出现。

我尝试使用 file.sink 写入文件

下面是我在 startup.cs 中的配置

0 投票
2 回答
562 浏览

c# - 如何将自定义文件名添加到 serilog 文件接收器生成的日志文件

我想将主机名添加到由 Serilog 文件接收器生成的日志文件中。

我在下面尝试过,但我的文件名如log-{fileName}-20210910.txt下面的代码所示,

定义配置时如何访问fileName变量?serilog

0 投票
1 回答
135 浏览

c# - Serilog:restrictedToMinimumLevel 使用 LevelSwitches

我在 .Net 5 应用程序中使用 Serilog,我正在配置它从 .Net 加载配置appsettings.{env}.json

在这个文件中,我想为每个接收器指定一个不同的最小日志记录级别,并且我想用 a 来控制它,LevelSwitch这样我就不需要重新启动我的应用程序来更改它。为了实现这一点,我知道restrictedToMinimumLevel可以为每个接收器指定,但我找不到它由开关控制的示例。似乎它只能是具有日志记录级别的字符串,因为当我尝试将其绑定到开关时,我得到了这个异常:

我错过了什么吗?如何设置每个接收器的最低日志记录级别,以便在运行时轻松更改而无需重新启动我的应用程序?

这些是我的设置:

我也对其他解决方案持开放态度。谢谢你。

0 投票
0 回答
38 浏览

customization - Serilog,如何以编程方式将 FileSink 参数化为在自定义接收器中的日期更改和文件大小处滚动文件名

欢迎大家,

我有一个定制的水槽。在 Emit 中,我需要动态创建一个 FileSink,如“new FileSink(...)”取决于任何条件。我需要滚动一天。不幸的是,Serilog.Sinks.RollingFile 已被弃用,替代包是 Serilog.Sinks.File,这就是我使用它的原因。那么如何在创建 FileSink 时以编程方式对其进行参数化,以“每天滚动”?我没有看到在哪里可以通过 RollingInterval.Day。环境。是 .NET 核心

谢谢

0 投票
0 回答
71 浏览

c# - 将标题添加到共享滚动文件 Serilog

我想使用 Serilog 将不同(.NET 框架)应用程序生成的日志写入带有标题的公共文件。要求在达到特定字节限制后拆分文件

https://github.com/serilog/serilog-sinks-fileshared: true解释了如何通过在WriteTo.File()记录器配置中使用方法从多个应用程序写入公共文件

https://github.com/cocowalla/serilog-sinks-file-header解释了如何hooksWriteTo.File()方法中添加标题,在记录器配置中这两个单独支持文件被拆分(滚动文件)使用fileSizeLimitBytes

我将记录器配置为:

但我得到了错误Unhandled Exception: System.ArgumentException: File lifecycle hooks are not currently supported for shared log files

有没有办法将这两种功能结合起来,并将标题添加到由多个应用程序共享的 serilog 生成的滚动文件中?

0 投票
0 回答
50 浏览

c# - Serilog.Sinks.File.Archive:不创建 C# 静态类的 JSON 配置

我目前正在一个已经存在的项目中从 NLog 转移到 Serilog。使用 NLog,我们曾经将归档/旧日志文件移动到专用目录(例如,“历史记录”),因此我试图对 Serilog 做同样的事情。

我发现了Serilog.Sinks.File.Archive一个包,它允许按照他们的 GitHub 页面中的描述创建一个 C# 类。

我的问题是:有没有一种方法可以在没有任何 C# 静态类的情况下仅使用正确的 JSON 配置来实现相同的行为?当然,我们可以使用某种模式将配置的路径传递给静态类,但如果已经有首选的方法来做到这一点,那就太好了:)

0 投票
0 回答
72 浏览

.net-5 - 将 Serilog 日志文件路径更改为更高级别的目录

我正在尝试更改写入 Serilog 文件的位置。它将写入项目根目录或下面的目录(例如,StructuredLogs/file-here.txt),但每当我尝试使用环境变量或写入绝对文件路径甚至相对文件路径时,它只会写入根目录并用  替换 / 或 \(正确转义):

VS 示例

设置在 appSettings.json 中,如下所示:

我努力了:

  1. 将解决方案从便携式驱动器移动到我的本地计算机:C:/ vs D:/
  2. 确保它在 Visual Studio 2022 的提升权限下运行
  3. 更改为我可以访问不同目录的各种方式(相对、绝对、环境变量等)
  4. 正斜杠与反斜杠

没有一个工作。

看起来对某种字符集编码问题有点熟悉,但不确定。

理想情况下我会有相对路径吗?

0 投票
1 回答
54 浏览

serilog - 让 Serilog 用 _001 附加它的第一个日志文件

是否可以配置 Serilog,以便默认日志文件附加 _001,如果达到文件限制,后续文件附加 _002、_003 等。

这是在 ASP.NET Core 应用程序的上下文中。