82 lines
2.2 KiB
C#
82 lines
2.2 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Text;
|
|
|
|
namespace OSHttpServer
|
|
{
|
|
/// <summary>
|
|
/// Priority for log entries
|
|
/// </summary>
|
|
/// <seealso cref="ILogWriter"/>
|
|
|
|
public enum LogPrio
|
|
{
|
|
None,
|
|
/// <summary>
|
|
/// Very detailed logs to be able to follow the flow of the program.
|
|
/// </summary>
|
|
Trace,
|
|
|
|
/// <summary>
|
|
/// Logs to help debug errors in the application
|
|
/// </summary>
|
|
Debug,
|
|
|
|
/// <summary>
|
|
/// Information to be able to keep track of state changes etc.
|
|
/// </summary>
|
|
Info,
|
|
|
|
/// <summary>
|
|
/// Something did not go as we expected, but it's no problem.
|
|
/// </summary>
|
|
Warning,
|
|
|
|
/// <summary>
|
|
/// Something that should not fail failed, but we can still keep
|
|
/// on going.
|
|
/// </summary>
|
|
Error,
|
|
|
|
/// <summary>
|
|
/// Something failed, and we cannot handle it properly.
|
|
/// </summary>
|
|
Fatal
|
|
}
|
|
|
|
/// <summary>
|
|
/// Interface used to write to log files.
|
|
/// </summary>
|
|
public interface ILogWriter
|
|
{
|
|
/// <summary>
|
|
/// Write an entry to the log file.
|
|
/// </summary>
|
|
/// <param name="source">object that is writing to the log</param>
|
|
/// <param name="priority">importance of the log message</param>
|
|
/// <param name="message">the message</param>
|
|
void Write(object source, LogPrio priority, string message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Default log writer, writes everything to null (nowhere).
|
|
/// </summary>
|
|
/// <seealso cref="ILogWriter"/>
|
|
|
|
public sealed class NullLogWriter : ILogWriter
|
|
{
|
|
/// <summary>
|
|
/// The logging instance.
|
|
/// </summary>
|
|
public static readonly NullLogWriter Instance = new NullLogWriter();
|
|
|
|
/// <summary>
|
|
/// Writes everything to null
|
|
/// </summary>
|
|
/// <param name="source">object that wrote the log entry.</param>
|
|
/// <param name="prio">Importance of the log message</param>
|
|
/// <param name="message">The message.</param>
|
|
public void Write(object source, LogPrio prio, string message) {}
|
|
}
|
|
}
|