我正在使用Asp.net内核3.1并试图保存日志文件。通过将"loggerFactory.AddFile("/Logs/mylog-{Date}.txt");“添加到startup.cs文件中,我能够在web应用程序中存储日志文件,但无法在控制台应用程序中存储日志文件。
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());
}
}
发布于 2020-10-07 04:45:04
根据您的代码,我认为您正在使用Serilog.Extensions.Logging.File
库将日志信息存储到文件中,对吗?我已经检查了其资源文件,但没有找到关于如何在控制台应用程序中使用它的文章。因此,作为解决办法,我建议您可以尝试使用Serilog图书馆将日志信息存储到文件中。
要将日志信息存储在控制台应用程序中,可以参考以下步骤:
Serilog.Sinks.Console
和Serilog.Sinks.Console
包。Serilog
和Serilog.Events
名称空间):
静态空洞Main(string[] args) { Log.Logger =新LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File("log.txt") .WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information) .CreateLogger();} Log.Fatal(ex,“应用程序启动失败”);}最后{ Log.CloseAndFlush();} Console.WriteLine("Hello!“);Console.ReadKey();}
有关使用Serilog
的更多详细信息,请查看Serilog配置基础。https://stackoverflow.com/questions/64240056
复制相似问题