protected sealed override void Convert()

in src/log4net/Layout/Pattern/NamedPatternConverter.cs [113:146]


  protected sealed override void Convert(TextWriter writer, LoggingEvent loggingEvent)
  {
    writer.EnsureNotNull();
    string? name = GetFullyQualifiedName(loggingEvent);
    if (_precision <= 0 || name is null || name.Length < 2)
    {
      writer.Write(name);
    }
    else
    {
      int len = name.Length;
      string trailingDot = string.Empty;
      if (name.EndsWith(Dot))
      {
        trailingDot = Dot;
        name = name.Substring(0, len - 1);
        len--;
      }

      int end = name.LastIndexOf(Dot);
      for (int i = 1; end > 0 && i < _precision; i++)
      {
        end = name.LastIndexOf('.', end - 1);
      }
      if (end == -1)
      {
        writer.Write(name + trailingDot);
      }
      else
      {
        writer.Write(name.Substring(end + 1, len - end - 1) + trailingDot);
      }
    }
  }