Я работаю. NET Новый шаблон проекта Core 3.1 Worker Service
для службы Linux
. Я хочу реализовать ведение журнала для Linux.
Мне нужно создать файл text
и журналы в этом файле. Я пробовал что-то, но это не создает файл для Linux daemon
.
Program class
код
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.Enrich.FromLogContext()
.WriteTo.File(@"F:\Logs\Worker\logfile.txt").CreateLogger(); //On this location folder and file will be created
IHost host = CreateHostBuilder(args).Build();
host.Services.UseScheduler(scheduler =>
{
scheduler
.Schedule<ReprocessInvocable>()
.EveryThirtySeconds();
});
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).UseSystemd()
.ConfigureServices(services =>
{
services.AddScheduler();
services.AddTransient<ReprocessInvocable>();
}).UseSerilog();
ReprocessInvocable.cs
код класса, который вызывает Main
public async Task Invoke()
{
_logger.LogInformation("Information - Worker running at: {time}", DateTimeOffset.Now);
_logger.LogWarning("Warning - Worker running at: {time}", DateTimeOffset.Now);
_logger.LogError("Error - Worker running at: {time}", DateTimeOffset.Now);;
Log.Information("Invoke has called at: {time}", DateTimeOffset.Now);
//return Task.CompletedTask;
}
Как заставить его работать для Linux
исполняемого файла? или существующий код должен работать нормально?
Изменить 1:
1) Что вы используете для запуска своего демона? супервайзер? systemd?
Я использовал Systemd для установки демона.
2) Есть ли у вас ожидания того, что вы хотите от «входа в систему Linux»?
Я хочу чтобы сгенерировать текстовый файл при запуске демона (это довольно просто в windows :)) и зарегистрировать / записать текст, например Method1, вызываемый в {time} и Method2, вызываемый в {time} et c .. Просто для отслеживания поток обслуживания.
3) Вы хотите, чтобы файл журнала на диске?
Для Linux, я хочу войти в Linux хранилище машины.
4 ) Или лог, который идет в системные журналы?
Если это дает мне файл с исключенным журналом, тогда все будет в порядке.