kreta/Framework/Logging/LogWriterException.cs
2024-03-13 00:33:46 +01:00

84 lines
2.5 KiB
C#

using System;
using System.Text;
namespace Kreta.Framework.Logging
{
/// <summary>
/// A napló alrendszer kivétele.
/// </summary>
public sealed class LogWriterException : Exception
{
private ILogMessage m_FailedLogMessage;
/// <summary>
/// Az osztály konstruktora.
/// </summary>
/// <param name="failedLogMessage">A sikertelen naplóbejegyzés</param>
public LogWriterException(ILogMessage failedLogMessage)
: this(failedLogMessage, null, null)
{
}
/// <summary>
/// Az osztály konstruktora.
/// </summary>
/// <param name="message">A kivétel üzenete</param>
public LogWriterException(string message)
: this(null, message, null)
{
}
/// <summary>
/// Az osztály konstruktora.
/// </summary>
/// <param name="message">A kivétel üzenete</param>
/// <param name="innerException">A belső kivétel</param>
public LogWriterException(string message, Exception innerException)
: this(null, message, innerException)
{
}
/// <summary>
/// Az osztály konstruktora.
/// </summary>
/// <param name="failedLogMessage">A sikertelen naplóbejegyzés</param>
/// <param name="message">A kivétel üzenete</param>
/// <param name="innerException">A belső kivétel</param>
public LogWriterException(ILogMessage failedLogMessage, string message, Exception innerException)
: base(message, innerException)
{
m_FailedLogMessage = failedLogMessage;
}
/// <summary>
/// A kivétel üzenete.
/// </summary>
public override string Message
{
get
{
if (m_FailedLogMessage == null)
{
return base.Message;
}
StringBuilder builder = new StringBuilder();
builder.AppendLine(base.Message);
builder.AppendLine("Failed message:");
builder.AppendLine(LogUtil.FormatMessage(m_FailedLogMessage, " | "));
return builder.ToString();
}
}
/// <summary>
/// A sikertelen naplóbejegyzés.
/// </summary>
public ILogMessage FailedLogMessage
{
get
{
return m_FailedLogMessage;
}
}
}
}