luigiberrettini / NLog.Targets.Syslog

A Syslog server target for NLog
Other
71 stars 46 forks source link

Truncation not Working #313

Open RyanGaudion opened 1 year ago

RyanGaudion commented 1 year ago

Bug description

I discovered an issue in my codebase where if I log a huge log (100kb) then it logs correctly to the file logger but suddenly all Syslogs stop forever more. Syslog stops working and reports not warnings or errors in the internal logger.

I tried to resolve this with the following however the bug continues. I even set truncateMessageTo to 16 however normal logs (before the bug occurs) still remain the same length (much longer than 4 bytes).

 <sl:enforcement>
   <sl:truncateMessageTo>1024</sl:truncateMessageTo>
 </sl:enforcement>

Expected behavior I expect when truncateMessageTo is set to 16 that logs sent via syslog are going to be a max length of 16 characters

Actual behavior None of the logs are truncated and everything remains the same size.

To reproduce A list of steps to reproduce the behavior.

Additional context

    <target xsi:type="Syslog" name="vSyslog">
      <sl:layout xsi:type="CompoundLayout">
        <layout type='SimpleLayout' text='@cee: ' />
        <layout type='${myLayout}' />
      </sl:layout>
      <sl:enforcement>
        <sl:truncateMessageTo>12</sl:truncateMessageTo>
      </sl:enforcement>
      <sl:messageCreation>
        <sl:rfc>Rfc5424</sl:rfc>
        <sl:rfc5424 hostname="${machinename}" appName="myApp" procId="${processid}" msgId="${threadid}">
        </sl:rfc5424>
      </sl:messageCreation>
      <sl:messageSend>
        <sl:protocol>TCP</sl:protocol>
        <sl:udp>
          <sl:server>server.com</sl:server>
          <sl:port>514</sl:port>
        </sl:udp>
        <sl:tcp>
          <sl:server>server.com</sl:server>
          <sl:port>514</sl:port>
        </sl:tcp>
      </sl:messageSend>
  </target>
RyanGaudion commented 8 months ago

@luigiberrettini - this bug is still here. Any very long logs cause the nlog syslog target to stop working - no more logs are sent (while other nlog targets continue to work)