logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <ralph.go...@dslextreme.com>
Subject Re: syslog-ng disconnect causes thread to silently die?
Date Wed, 20 Jan 2016 10:31:36 GMT
My first thought would be to create a more advanced socket appender that uses netty.

Ralph

> On Jan 19, 2016, at 5:41 PM, Blake Day <blake@chewy.com> wrote:
> 
> I can send more messages, but for a period of time after the socket closes, messages
are discarded. Is there any way to queue (and block) the messages until the socket has been
re-established?
> 
> 
> 
> 
>> On 1/19/16, 7:40 PM, "Ralph Goers" <ralph.goers@dslextreme.com> wrote:
>> 
>> This shows the SocketAppender threw an exception because the connection was closed.
The exception was caught by the AppenderControl, which re-threw it as an AppenderLoggingException.
 That exception would have been caught by the AsyncAppender, which then ignored it.  The SocketAppender
then re-established the connection, so it isn’t dying. You should still be able to
send more messages.
>> 
>>> On Jan 19, 2016, at 5:17 PM, Blake Day <blake@chewy.com> wrote:
>>> 
>>> I’m having trouble getting additional debug messages, but I did get the
following logs with immediateFail=true on the SocketAppender only.
>>> 
>>> 
>>> By the way, I’m using an AsyncAppender. Would that cause the error handling
to work differently?
>>> 
>>> 
>>> 2016-01-19 18:30:11,995 AsyncAppender-ASYNC-SYSLOG ERROR Unable to write to stream
TCP:localhost:601 for appender SYSLOG
>>> 2016-01-19 18:30:11,996 AsyncAppender-ASYNC-SYSLOG ERROR An exception occurred
processing Appender SYSLOG org.apache.logging.log4j.core.appender.AppenderLoggingException:
Error writing to TCP:localhost:601
>>>    at org.apache.logging.log4j.core.net.TcpSocketManager.write(TcpSocketManager.java:140)
>>>    at org.apache.logging.log4j.core.appender.OutputStreamManager.write(OutputStreamManager.java:136)
>>>    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:105)
>>>    at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:152)
>>>    at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:125)
>>>    at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:116)
>>>    at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
>>>    at org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.callAppenders(AsyncAppender.java:308)
>>>    at org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:261)
>>> Caused by: java.net.SocketException: Broken pipe
>>>    at java.net.SocketOutputStream.socketWrite0(Native Method)
>>>    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
>>>    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
>>>    at org.apache.logging.log4j.core.net.TcpSocketManager.write(TcpSocketManager.java:131)
>>>    ... 8 more
>>> 2016-01-19 18:30:52,941 Thread-42 DEBUG Connection to localhost:601 reestablished.
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>>> On 1/19/16, 4:59 PM, "Ralph Goers" <ralph.goers@dslextreme.com> wrote:
>>>> 
>>>> Can you enable the debug logging so we can see what is happening in the Appender?
>>>> 
>>>> Ralph
>>>> 
>>>>> On Jan 19, 2016, at 1:32 PM, Blake Day <blake@chewy.com> wrote:
>>>>> 
>>>>> Sorry, on further investigation, it appears that the thread does not
die. But the subsequent log messages are lost from the syslog side.  I found https://issues.apache.org/jira/browse/LOG4J2-122,
but I am not sure what to make of it.  I’ve also tried playing with immediateFail and
reconnectionDelayMillis, but nothing seems to have the effect I want.
>>>>> 
>>>>> 
>>>>> 
>>>>>> On 1/19/16, 2:36 PM, "Blake Day" <blake@chewy.com> wrote:
>>>>>> 
>>>>>> I’m using SocketAppender to log to syslog-ng.
>>>>>> 
>>>>>> 
>>>>>> When logging a message that exceeds 8192 bytes (a syslog-ng setting),
syslog-ng gives an error and closes the connection.  What happens immediately after is unclear,
but it appears that the java thread just dies silently.  The thread itself is a quartz scheduler
worker thread, but I thought I’d ask here to see whether you guys think this is a log4j
related issue.  There are no java application logs (console or otherwise) to suggest what
happened.
>>>>>> 
>>>>>> 
>>>>>> Here is the output from syslog-ng’s side:
>>>>>> 
>>>>>> 
>>>>>> 2016-01-19T14:26:34-05:00 ERR syslog-ng[87462]: - Incoming frame
larger than log_msg_size(); log_msg_size='8192', frame_length='100233'
>>>>>> 
>>>>>> 2016-01-19T14:26:34-05:00 NOTICE syslog-ng[87462]: - Syslog connection
closed; fd='34', client='AF_INET(127.0.0.1:10142)', local='AF_INET(0.0.0.0:601)'
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> ТÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÐÐ¥FòVç7V'67&–&RÂRÖÖ–âÆösF¢×W6W"×Vç7V'67&–&TÆövv–æræ6†Ræ÷&pФf÷"FF—F–öæÂ6öÖÖæG2ÂRÖÖ–âÆösF¢×W6W"Ö†VÇÆövv–æræ6†Ræ÷&pÐ



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message