我正在使用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());
}
}
答案 0 :(得分:0)
根据您的代码,我想您正在使用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。