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 18:41:55 GMT
I agree they should be able to say not to use Netty, but if I had Netty on the classpath I
am pretty sure I’d want to use that by default.

Ralph

> On Jan 20, 2016, at 10:54 AM, Gary Gregory <garydgregory@gmail.com> wrote:
> 
> I do not like this kind of magic because I might have Netty on the CP due
> to a different dependency and should then still be able to not use Netty. I
> would want a setting that says "use netty" or that says "use an instance of
> foo for the manager".
> 
> Gary
> On Jan 20, 2016 8:35 AM, "Ralph Goers" <ralph.goers@dslextreme.com <mailto:ralph.goers@dslextreme.com>>
wrote:
> 
>> 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 <mailto:garydgregory@gmail.com>>
>> wrote:
>>> 
>>> On Wed, Jan 20, 2016 at 2:31 AM, Ralph Goers <ralph.goers@dslextreme.com <mailto:ralph.goers@dslextreme.com>
>> <mailto: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> <mailto:garydgregory@gmail.com
<mailto:garydgregory@gmail.com>> |
>> ggregory@apache.org <mailto:ggregory@apache.org> <mailto:ggregory@apache.org
<mailto:ggregory@apache.org>>
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/> <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/>
<
>> http://www.manning.com/tahchiev/ <http://www.manning.com/tahchiev/>>>
>>> Spring Batch in Action <http://www.manning.com/templier/ <http://www.manning.com/templier/>
<
>> http://www.manning.com/templier/ <http://www.manning.com/templier/>>>
>>> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/>
<
>> http://garygregory.wordpress.com/ <http://garygregory.wordpress.com/>>
>>> Home: http://garygregory.com/ <http://garygregory.com/> <http://garygregory.com/
<http://garygregory.com/>>
>>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
<http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>>


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