Scalable Logging Framework?
public interface ILoggerTarget
{
void Log(string message);
}
Central Logger
public class Logger
{
private readonly List<ILoggerTarget> targets = new();
public void AddTarget(ILoggerTarget target)
=> targets.Add(target);
public void Log(string message)
{
foreach (var t in targets)
t.Log(message);
}
}
Supports:
- Console
- File
- Database
- Cloud
Follows Open–Closed Principle.