in src/log4net/Util/PatternConverter.cs [137:186]
public virtual void Format(TextWriter writer, object? state)
{
writer.EnsureNotNull();
if (_min < 0 && _max == int.MaxValue)
{
// Formatting options are not in use
Convert(writer, state);
}
else
{
string? msg;
int len;
lock (_syncRoot)
{
_formatWriter.Reset(MaxRenderBufferCapacity, DefaultRenderBufferSize);
Convert(_formatWriter, state);
StringBuilder buf = _formatWriter.GetStringBuilder();
len = buf.Length;
if (len > _max)
{
msg = buf.ToString(len - _max, _max);
len = _max;
}
else
{
msg = buf.ToString();
}
}
if (len < _min)
{
if (_leftAlign)
{
writer.Write(msg);
SpacePad(writer, _min - len);
}
else
{
SpacePad(writer, _min - len);
writer.Write(msg);
}
}
else
{
writer.Write(msg);
}
}
}