在我的appsettings.json中我写过:
<link href="">
并在构造函数
中的startup.cs文件中{
"Logging": {
"PathLogsFile": "./Logs",
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
但是来自appsettings的最低级别读取并不起作用。 有任何想法吗?我该如何解决?
答案 0 :(得分:2)
我认为您不应该使用<script type="text/javascript">
$(document).ready(function() {
$('#record-table').DataTable({
"ajax": {
url : "<?php echo site_url("mycontroller/dataa") ?>",
type : 'GET'
},
});
});
</script>
并使用Parameswar Rao建议的ReadFrom.KeyValuePairs
。但是,如果您真的想使用KeyValuePair,请使用以下代码:
ConfigurationBuilder .AddJsonFile("appsettings.json")
重要的是,您不要在appSettings中使用var logger = new LoggerConfiguration()
.ReadFrom.KeyValuePairs(new Dictionary<string, string>() {
{ "write-to:File.fileSizeLimitBytes","20971520" },
{ "write-to:File.rollOnFileSizeLimit","true" },
{ "write-to:File.retainedFileCountLimit","10" },
{ "minimum-level","Debug" },
{ "write-to:File.path",@"C:\Temp\log.txt" },
{ "using:File","Serilog.Sinks.File" },
}).CreateLogger();
logger.Information("test");
作为密钥的前缀。
答案 1 :(得分:1)
我相信这就是你要找的东西
以下是appsettings.json中的serilog配置示例
{
"Serilog": {
"Using": ["Serilog.Sinks.Literate"],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "LiterateConsole" },
{ "Name": "File", "Args": { "path": "%TEMP%\\Logs\\serilog-configuration-sample.txt" } }
],
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
"Properties": {
"Application": "Sample"
}
}
}
<强> startup.cs 强>
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
答案 2 :(得分:0)
如Parameswar Rao's answer中所述,如果您使用的是ConfigurationBuilder
,则需要使用.ReadFrom.Configuration
方法来代替。
要扩展asidis's example,您可以看一下我项目中使用的配置。应用程序会将logging
节点的内容作为IDictionary<string, string>
加载,然后再馈入.ReadFrom.KeyValuePairs
:
"logging": {
"minimum-level": "Information",
"using:Console": "Serilog.Sinks.Console",
"write-to:Console": "",
"using:Discord": "CXuesong.Uel.Serilog.Sinks.Discord",
"write-to:DiscordWebhook.webhookId": "xxxx",
"write-to:DiscordWebhook.webhookToken": "xxxx"
},
值得注意的几点:
Dictionary
,因此请确保不要重复使用密钥using
项,并将程序集名称作为值,然后在其中使用接收器。要减少重复的密钥,请使用using:some_random_text
作为密钥名称。write-to
条目的完整语法是"write-to:MethodName[.argumentName]": "argumentValue"
MethodName
是loggerConfig.WriteTo.MethodName
中的接收器配置扩展方法的名称。 argumentName
是方法参数的名称。
如果您没有将任何参数传递给该方法,则只需忽略.argumentName
部分。