【问题标题】:Asp.Net 5 (core) RC1: How to log to file (rolling file logging) [DNX Core 5 compatible solution]?Asp.Net 5 (core) RC1: How to log to file (rolling file logging) [DNX Core 5 compatible solution]?
【发布时间】:2016-01-27 13:06:13
【问题描述】:

如何在 Asp.Net 5 RC1 中登录到文件?我找不到 Microsoft.Extensions.Logging 的任何解决方案。有没有与.Net Core 5 (DNX Core 5.0) 兼容的解决方案?我也尝试过使用 Serilog,但 Serilog 还不支持 core 5。

【问题讨论】:

  • 你试过NLog记录器了吗?
  • 或者你可以走 1984 年的路线,只使用一个 sub 将提供的日志条目写入你选择的文件并保持滚动。如果这是您唯一的要求,它将起作用。可能不是首选或推荐,但肯定兼容并且可以使用。如果您需要任何此类程序的示例,请告诉我,我会提供一个。

标签: asp.net logging asp.net-core dnx microsoft-extensions-logging


【解决方案1】:

要在您的 ASP.NET 5 RC1 项目中使用 Serilog,请在您的 project.json 文件中添加以下依赖项:

"Serilog.Extensions.Logging": "1.0.0-rc1-final-10092",
"Serilog.Sinks.RollingFile": "2.0.0-beta-465"

Startup 构造函数中创建记录器:

public Startup(IApplicationEnvironment appEnv)
{
    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .WriteTo.RollingFile(Path.Combine(appEnv.ApplicationBasePath, "log-{Date}.txt"))
        .CreateLogger();
}

并在Startup.Configure方法中添加Serilog:

public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
    loggerFactory.AddSerilog();

【讨论】:

  • 这在 VS 中本地工作,但即使应用程序本身工作正常,我也无法让它在 IIS 上工作。知道为什么吗?没有创建日志文件。
  • 尝试授予应用程序池身份权限以写入您将记录的文件夹。
  • 还检查 seq (getseq.net) 以在浏览器中以格式正确的方式显示日志。 (就像 elmah 一样)。
  • @JeffOgata 我刚刚做了 :: .WriteTo.RollingFile("logs\\log-{Date}.txt") 并且它有效。你能解释一下这是什么 :: "Path.Combine(appEnv.ApplicationBasePath,.." for 吗?
【解决方案2】:

Serilog.Extensions.Logging.File 包是一种向 ASP.Net Core 应用程序添加文件日志记录的简单方法(最新版本支持 .NET Core 2.0,该版本在此时此刻)。

  • 作为 ASP.NET Core 日志记录提供程序插入
  • 提供 Serilog 功能的子集,专门用于记录到文件系统。
  • 根据需要自动拉取其他 Serilog 包。

https://github.com/serilog/serilog-extensions-logging-file

https://www.nuget.org/packages/Serilog.Extensions.Logging.File

【讨论】:

    猜你喜欢
    • 2022-12-26
    • 2022-12-02
    • 1970-01-01
    • 2022-12-27
    • 2022-12-02
    • 2022-12-02
    • 2023-02-24
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多