如何解决如何在控制台应用程序中存储日志文件
我正在使用Asp.net core 3.1并尝试保存日志文件。我可以通过添加“ loggerFactory.AddFile(” / Logs / mylog- {Date} .txt“);”在Web应用程序中存储日志文件。到startup.cs文件中,但是我无法将日志文件存储在控制台应用程序中。
class Program
{
//public static IConfiguration Configuration { get; }
private static AppDbContext _context;
private static IServiceProvider _service;
public static IConfigurationRoot Configuration;
public static IOptions<ServiceEndpoint> _endpoint;
private static ILogger<CallService> _logger;
static async Task Main(string[] args)
{
try
{
Console.OutputEncoding = Encoding.UTF8;
var services = new ServiceCollection();
var builder = new ConfigurationBuilder()
.SetBasePath(Path.Combine(AppContext.BaseDirectory))
.AddJsonFile("appsettings.json",optional: true);
Configuration = builder.Build();
services.AddDbContext<AppDbContext>(options =>
options.UsesqlServer(Configuration.GetConnectionString("DefaultConnection")),ServiceLifetime.Scoped);
services.AddLogging();
using (var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()))
{
loggerFactory.AddFile("/Logs/mylog-{Date}.txt");
}
var serviceProvider = services.BuildServiceProvider();
}
_logger.Loginformation("Process runnning");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
_logger.LogError(ex.InnerException.ToString());
}
}
解决方法
根据您的代码,我想您正在使用Serilog.Extensions.Logging.File
库将日志信息存储到文件中,对吗?我已经检查过its resource document,但是找不到有关如何在控制台应用程序中使用它的文章。因此,作为一种解决方法,我建议您尝试使用Serilog library将日志信息存储到文件中。
要将日志信息存储在控制台应用程序中,可以参考以下步骤:
-
通过Nuget安装
Serilog.Sinks.Console
和Serilog.Sinks.Console
软件包。 -
创建记录器。
Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File("log.txt") // log file. .WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information) .CreateLogger();
下面的示例代码(添加
Serilog
和Serilog.Events
名称空间):static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File("log.txt") .WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information) .CreateLogger(); try { Log.Information("Starting up"); } catch (Exception ex) { Log.Fatal(ex,"Application start-up failed"); } finally { Log.CloseAndFlush(); } Console.WriteLine("Hello World!"); Console.ReadKey(); }
有关使用
Serilog
的更多详细信息,请检查Serilog Configuration Basics。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。