in src/log4net/Util/PatternConverter.cs [168:216]
public virtual void Format(TextWriter writer, object state)
{
if (m_min < 0 && m_max == int.MaxValue)
{
// Formatting options are not in use
Convert(writer, state);
}
else
{
string msg = null;
int len;
lock (m_formatWriter)
{
m_formatWriter.Reset(c_renderBufferMaxCapacity, c_renderBufferSize);
Convert(m_formatWriter, state);
StringBuilder buf = m_formatWriter.GetStringBuilder();
len = buf.Length;
if (len > m_max)
{
msg = buf.ToString(len - m_max, m_max);
len = m_max;
}
else
{
msg = buf.ToString();
}
}
if (len < m_min)
{
if (m_leftAlign)
{
writer.Write(msg);
SpacePad(writer, m_min - len);
}
else
{
SpacePad(writer, m_min - len);
writer.Write(msg);
}
}
else
{
writer.Write(msg);
}
}
}