Ferrite.Utils/SerilogLogger.cs
Rama main · réplica de lectura del repositorio original.
// SPDX-License-Identifier: AGPL-3.0-or-later
// Copyright (C) 2022-2026 Aykut Alparslan KOC
using System;
using Serilog;
using Serilog.Core;
namespace Ferrite.Utils;
public class SerilogLogger : ILogger
{
private Logger log;
public SerilogLogger()
{
var path = Environment.GetEnvironmentVariable("FERRITE_LOG_PATH");
if (string.IsNullOrWhiteSpace(path))
{
path = "ferrite.log";
}
File.WriteAllText(path, string.Empty);
log = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File(path)
.CreateLogger();
}
public void Debug(string message)
{
Console.WriteLine(message);
log.Debug(message);
}
public void Debug(Exception exception, string message)
{
Console.WriteLine(message);
log.Debug(exception, message);
}
public void Error(string message)
{
Console.WriteLine(message);
log.Error(message);
}
public void Error(Exception exception, string message)
{
Console.WriteLine(message);
log.Error(exception, message);
}
public void Fatal(string message)
{
Console.WriteLine(message);
log.Fatal(message);
}
public void Fatal(Exception exception, string message)
{
Console.WriteLine(message);
log.Fatal(exception, message);
}
public void Information(string message)
{
Console.WriteLine(message);
log.Information(message);
}
public void Information(Exception exception, string message)
{
Console.WriteLine(message);
log.Information(exception, message);
}
public void Verbose(string message)
{
Console.WriteLine(message);
log.Verbose(message);
}
public void Verbose(Exception exception, string message)
{
Console.WriteLine(message);
log.Verbose(exception, message);
}
public void Warning(string message)
{
Console.WriteLine(message);
log.Warning(message);
}
public void Warning(Exception exception, string message)
{
Console.WriteLine(message);
log.Warning(exception, message);
}
}