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 16:35:22 GMT
In thinking about this some more we really shouldn’t need a new Appender. Just a different
SocketManager implementation. The createSocketManager method just needs to check for the presence
of some Netty class.

Ralph

> On Jan 20, 2016, at 9:27 AM, Gary Gregory <garydgregory@gmail.com> wrote:
> 
> On Wed, Jan 20, 2016 at 2:31 AM, Ralph Goers <ralph.goers@dslextreme.com <mailto:ralph.goers@dslextreme.com>>
> wrote:
> 
>> My first thought would be to create a more advanced socket appender that
>> uses netty.
>> 
> 
> I've used Netty before at work and it is certainly fancy; just for
> completeness there is also Apache Mina.
> 
> Gary
> 
> 
>> 
>> 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
>> 
>> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com <mailto:garydgregory@gmail.com> | ggregory@apache.org
<mailto:ggregory@apache.org>
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ <http://www.manning.com/tahchiev/>>
> Spring Batch in Action <http://www.manning.com/templier/ <http://www.manning.com/templier/>>
> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/>
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message