我试图安装serilog,我收到错误
PM> Install-Package Serilog
Install-Package:'Serilog'已经
为'Microsoft.CSharp'定义了一个依赖项.在行:1 char:1
+ Install-Package Serilog
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo:NotSpecified :( :) [Install-Package],出现InvalidOperationException
+ FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
Microsoft.CSharp 已在我的项目中引用
我正在使用 Serilog - RollingFile Sink,但它将所有数据存储在一个文件中一天。在我的应用程序中,一天写入 1 GB 日志。所以我想根据日期和大小滚动日志文件。
如何配置 RollingFile Sink 以根据日期和大小滚动文件?
我正在尝试使用一些富集程序(现在的机器名和线程ID)以及滚动文件接收器和Loggly接收器.虽然Loggly事件正确包含机器名称和线程ID属性,但我在滚动文件事件中看不到这些.
这是我的xml /代码配置:
<add key="serilog:minimum-level" value="Information" />
<add key="serilog:write-to:RollingFile.pathFormat" value="C:\Foo\bar-{Date}.txt" />
<add key="serilog:using" value="Serilog.Sinks.Loggly" />
<add key="serilog:write-to:Loggly.inputKey" value="redacted Loggly key" />
Run Code Online (Sandbox Code Playgroud)
new LoggerConfiguration()
.ReadAppSettings()
.Enrich.WithMachineName()
.Enrich.WithThreadId()
.CreateLogger()
Run Code Online (Sandbox Code Playgroud)
有没有人设法做到这一点?这种行为是设计还是滚动文件接收器不支持这些丰富?
您好,我正在尝试使用 . 在一个文件中记录一些消息,在另一个文件中记录其他消息Serilog。
我尝试过以下配置:
Log.Logger = new LoggerConfiguration()
.WriteTo.Map("type", "audit", (name, x) => x.File(auditLogPath))
.WriteTo.Map("type", "normal", (nm, wt) => wt.File(logpath).WriteTo.Console())
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
现在我期望当我的Push键值对的键是audit日志上下文时,我的数据将记录在第一个模式中audit:
using(LogContext.PushProperty("type","audit")
{
Log.Information("something");
}
Run Code Online (Sandbox Code Playgroud)
为什么我的数据会出现第二种模式?它被记录到控制台并放入另一个文件中,我不明白为什么。
更新
从下面的答案中我了解到不需要定义多个记录器,而是基于以下内容进行调度key:
Log.Logger = new LoggerConfiguration()
.WriteTo.Map("type", string.Empty, (nm, wt) => {
if (nm == "audit") {
wt.File(auditLogPath); //i want to write here !
return;
}
wt.File(logpath).WriteTo.Console()
})
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用它登录第一个场景(audit如下所示)时,所有日志都会放置在另一个场景中(logpath+ Console)
using(LogContext.PushProperty("type","audit"))
{
Log.Information("something");
}
Run Code Online (Sandbox Code Playgroud) RollingFile接收器的当前输出日期时间如下
2015-04-06 18:40:54.400 +10:00 [Information] Hello World!
Run Code Online (Sandbox Code Playgroud)
无论如何要删除TimeZone偏移量?+10:00.实现以下输出;
2015-04-06 18:40:54.400 [Information] Hello World!
Run Code Online (Sandbox Code Playgroud)
在我的情况下,时区偏移是多余的绒毛,这只是混乱我的文本日志.