0
シナリオ:ASP.NET MVC 6 Webアプリケーション。Serilog:ローリングファイルの動作を取得できません
は、ここでのパッケージはproject.json
にインポートされます。ここでは
"Serilog": "2.3.0",
"Serilog.Extensions.Logging": "1.3.1",
"Serilog.Sinks.RollingFile": "3.2.0",
"Serilog.Settings.Configuration": "2.2.0"
がappsettings
設定
"Serilog": {
"Using": [ "Serilog.Sinks.RollingFile" ],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"Microsoft": "Warning",
"Microsoft.AspNetCore.Identity": "Debug",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "RollingFile",
"Args": {
"path": "logger-{Date}.log",
"outputTemplate": "{Timestamp:o} [{Level:u3}] ({Application}/{MachineName}/{ThreadId}) {Message}{NewLine}{Exception}",
"fileSizeLimitBytes": 16384
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Application": "Sample"
}
},
ここ
Startup
configureメソッドでコンストラクタ
var builder = new ConfigurationBuilder()
.SetBasePath(_environment.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{_environment.EnvironmentName}.json", optional: true);
Configuration = builder.Build();
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
私は
を持っているですloggerFactory.AddConsole();
loggerFactory.AddSerilog();
ファイルはどこに書き込まれるはずですか?書き込み許可に関連する問題がありますか?
EDIT
は@Sanketの提案に従ったが、まだ動作しません。私はkestrelに切り替えて、コンソール上で動作していたのかどうかを確認しましたが、まだ運がありません。私が何を参照してくださいここにあります:
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:5000/
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
Executing action method MyCompany.MyProject.Host.Controllers.HomeController.Index MyCompany.MyProject.Host) with arguments (
(null)) - ModelState is Valid
info: Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ViewResultExecutor[1]
Executing ViewResult, running view at path /Views/Home/Index.cshtml.
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
Executed action MyCompany.MyProject.Host.Controllers.HomeController.Index (MyCompany.MyProject.Host) in 2614.9118ms
私はちょうどスタートアップで
public IActionResult Index() {
_logger.LogDebug("Index in HomeController called!");
return View();
}
はい。私はそれを読んだ。私は設定ベースのロガーを使いたい。私はそれがすべて正しいと思われるが、ログファイルが表示されないようだ。 – Lorenzo
@Lorenzo:更新された回答をチェックする。'path'を' pathformat'に変更してください。 – Sanket
あなたの提案に従いましたが、運はありません。私の編集を見てください – Lorenzo