Ответ 1
В фреймворке в настоящий момент не включен регистратор файлов, но добавляется один: http://github.com/aspnet/Logging/issues/441. Не стесняйтесь поднимать вопрос на github.
Как подключиться к файлу без с помощью стороннего регистратора (serilog, elmah и т.д.) в .NET CORE?
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
}
В фреймворке в настоящий момент не включен регистратор файлов, но добавляется один: http://github.com/aspnet/Logging/issues/441. Не стесняйтесь поднимать вопрос на github.
.NET Core 2.0 2.1 вышла, но все еще не предоставляет реализацию ILoggerProvider для ведения журнала файлов.
Я искал жизнеспособную и легкую стороннюю реализацию, но не нашел ни одной, поэтому решил написать такую, которая бы охватывала функции встроенного ConsoleLogger и предоставляла дополнительные важные функции. Моя библиотека бесплатная, с открытым исходным кодом и имеет только каркасные зависимости.
Он полностью соответствует реализациям провайдера Microsoft. Использование так же просто, как указано ниже:
Install-Package Karambolo.Extensions.Logging.File
.NET Core 2.1:
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(lb =>
{
lb.AddConfiguration(Configuration.GetSection("Logging"));
lb.AddFile(o => o.RootPath = AppContext.BaseDirectory);
});
}
.NET Core 2.0:
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(lb =>
{
lb.AddConfiguration(Configuration.GetSection("Logging"));
lb.AddFile(new FileLoggerContext(AppContext.BaseDirectory, "default.log"));
});
services.Configure<FileLoggerOptions>(Configuration.GetSection("Logging:File"));
}
.NET Core 1.1:
var context = new FileLoggerContext(AppContext.BaseDirectory, "default.log");
loggerFactory.AddFile(context, Configuration.GetSection("Logging:File"));
Подробнее о конфигурации см. На сайте проекта.
Выпуск http://github.com/aspnet/Logging/issues/441 закрыт, и MS официально рекомендует использовать сторонние регистраторы файлов. Возможно, вы захотите избегать использования тяжеловесных каркасов журналирования, таких как serilog, nlog и т.д., Потому что они просто чрезмерны в случае, если все, что вам нужно, - это простой регистратор, который пишет в файл и ничего более (без каких-либо дополнительных зависимостей).
Я столкнулся с такой же ситуацией и реализовал простой (но эффективный) файловый регистратор: https://github.com/nreco/logging
Если вы используете IIS, вы можете включить и просмотреть журналы стандартного вывода:
true
..\logs\stdout
).Сведения о ведении журнала стандартного вывода см. В разделе Устранение неполадок ядра ASP.NET в IIS.
Поскольку .Net core (2.2) пока не реализует это, тем не менее, мы должны использовать сторонний плагин для этого. Если вы хотите записать ошибки, предупреждения и т.д. В текстовый файл в проекте .Net Core API. Вы можете использовать то, что я использовал в своем проекте, который называется Serilog.
и вы можете следить за блогом ниже, чтобы настроить Serilog для вашего проекта.
http://anthonygiretti.com/2018/11/19/common-features-in-asp-net-core-2-1-webapi-logging/