using System;
using System.Text;
namespace Kreta.Framework.Logging
{
///
/// A napló alrendszer kivétele.
///
public sealed class LogWriterException : Exception
{
private ILogMessage m_FailedLogMessage;
///
/// Az osztály konstruktora.
///
/// A sikertelen naplóbejegyzés
public LogWriterException(ILogMessage failedLogMessage)
: this(failedLogMessage, null, null)
{
}
///
/// Az osztály konstruktora.
///
/// A kivétel üzenete
public LogWriterException(string message)
: this(null, message, null)
{
}
///
/// Az osztály konstruktora.
///
/// A kivétel üzenete
/// A belső kivétel
public LogWriterException(string message, Exception innerException)
: this(null, message, innerException)
{
}
///
/// Az osztály konstruktora.
///
/// A sikertelen naplóbejegyzés
/// A kivétel üzenete
/// A belső kivétel
public LogWriterException(ILogMessage failedLogMessage, string message, Exception innerException)
: base(message, innerException)
{
m_FailedLogMessage = failedLogMessage;
}
///
/// A kivétel üzenete.
///
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();
}
}
///
/// A sikertelen naplóbejegyzés.
///
public ILogMessage FailedLogMessage
{
get
{
return m_FailedLogMessage;
}
}
}
}