问题标签 [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.
logging - 当文件不可访问时如何滚动日志文件
在 .net-core 控制台应用程序中,我使用Serilog 文件接收器进行日志记录。对于配置,我为文件接收器提供了一个文件路径 ( F:\\log.json
) 以写入日志。假设指定的文件是只读的,我希望 Serilog 文件接收器将日志写入新文件(例如F:\\log_1.json
),但 Serilog 文件接收器实际上放弃了将日志写入文件。
这是我的示例代码。我简化了我的代码来演示这个问题。
我也尝试传递shared: true
给File
扩展方法,但行为没有改变。
知道如何实现吗?
asp.net-core - 无法使用 Serilog 和 .Net Core 5 捕获实例化错误
我有一个带有 Serilog 的 .Net Core 5 应用程序。我正在测试错误日志,并且我有一个无法实例化的类,因为我在 DI 注册中注释掉了一些服务。这是我的 Program.cs 文件:
在Startup.txt
文件中,我只看到Information
错误而不是错误。想法?
c# - Serilog ThreadId 始终输出为 1
我在 outputTemplate 中有一个 ThreadId,但日志始终将其记录为 1。我有多个应用程序实例同时运行到同一个日志中,因此希望我可以根据 ThreadId 分离实例。
谁能建议如何解决这个问题?ThreadName 在应用程序设置一些东西并识别它正在运行的区域后被分配,因此不是最好的分隔符。也可以在一个区域内同时运行多个功能。因此需要 ThreadId
日志输出
logging - 如何配置滚动 serilog-sinks-file 以保持最新的同名日志文件
我喜欢在我的应用程序运行时使用最新的日志文件打开一个编辑器。我有一个 10MB 的文件大小限制和天作为滚动间隔。
当第一个文件log-20210314.log
填满并且 serilog 开始一个新文件时,新文件有一个新名称log-20210314_001.log
,所以我需要更改我在编辑器中查看的文件。
相比之下,log4j 的 RollingFileAppender默认翻转策略是这样工作的:
翻转次数 | 主动输出目标 | 存档的日志文件 | 描述 |
---|---|---|---|
0 | foo.log | - | 所有日志记录都将转到初始文件。 |
1 | foo.log | foo-1.log | 在第一次翻转期间,foo.log 被重命名为 foo-1.log。一个新的 foo.log 文件被创建并开始被写入。 |
2 | foo.log | foo-2.log,foo-1.log | 在第二次翻转期间,foo.log 被重命名为 foo-2.log。一个新的 foo.log 文件被创建并开始被写入。 |
3 | foo.log | foo-3.log、foo-2.log、foo-1.log | 在第三次翻转期间,foo.log 被重命名为 foo-3.log。一个新的 foo.log 文件被创建并开始被写入。 |
在该示例中,如果我的编辑器打开到foo.log
,我将始终看到最新的日志条目(翻转后文件立即为空的几秒钟除外)。
如何使 serilog-sinks-file 以这种方式运行?
我的配置:
.net - 使用 serilog .net 核心项目进行文件记录
我正在尝试使用 serilog 在 .net 核心项目上进行文件日志记录,并且我想使用一个日志文件来记录事件,并使用另一个日志文件来记录错误。生病添加 appsetting.json 文件:
问题是,无论我添加信息消息(Log.Information())还是致命消息(Log.Fatal()),消息都会添加到事件日志文件和错误日志文件中,而不区分消息的类型. 我该如何解决?提前谢谢。
logging - 在 Blazor WASM 中记录到文件
我是 Blazor 的新手。我想登录到 Blazor WASM 客户端的文件。我尝试使用 serilog 和 serilog.sink.file。但我没有看到任何日志写入文件。我也没有看到任何错误。是不是因为 Blazor WASM 在无法访问本地文件系统的浏览器沙箱中运行。有没有办法从 Blazor WASM 登录到文件。
我尝试在 Main 中配置的代码:
c# - 如何在 App.config 中配置 serilog 和 applicationinsights?
我试图这样做以配置 serilog 以写入应用程序洞察力。它在 app.config 文件中。但它不起作用。是否有任何替代方法
serilog - Serilog 不在生产服务器上创建日志文件
我创建了一个 C# .net5.0 控制台应用程序,并且在测试期间 Serilog 一直在正常工作,登录到控制台和文件(相同的文件夹;path="log.txt")。但是,当我在我们服务器上的应用程序上运行时,控制台和文件日志接收器都不起作用!我现在假设问题不在于接收器本身,而是 Serilog 没有实际工作。
我试过启用自我日志:
但即使在我的开发环境的调试器中运行,Console.WriteLine(msg)
也不会调用该行!
我appsettings.json
的如下:
我尝试过绝对路径(在 中使用双反斜杠appsettings.json
)。我已经尝试预先创建日志文件(例如log.txt
和log200428.txt
)并将权限设置为“所有人完全控制”,但这些更改都没有解决问题,并且他们没有解释为什么控制台接收器也不写入。
以下是在启动期间如何配置 Serilog,这是我怀疑问题所在(即使它在开发环境中工作):
任何想法为什么 Serilog 不在生产中工作?
.net - Serilog 正在为指向一个物理文件路径的两个端点创建两个日志文件
我将 serilog 用于我的 .net core web api2.1 项目。一切都在本地按预期工作,但是如果我发布代码并且如果我创建两个指向相同已发布代码的端点,那么 serilog 将为两个端点创建两个不同的日志,但我想在一个日志文件中维护。你能请在这件事上给予我帮助?这是我的 program.cs 文件
和 appsettings.json 如下。