Log4cxx SocketAppender导致应用程序崩溃

时间:2014-09-10 17:41:59

标签: linux c++11 logging log4cxx

我正在使用log4cxx,最近开始使用SocketAppender 1。我使用以下内容:

java org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties

并且能够在服务器上写日志。我也有一个本地的SizeRollover策略设置。一切正常,直到我停止运行SimpleSockerServer。此时我的C ++应用程序崩溃了,我认为在属性文件中指定了ReconnectionDelayTime之后。

来自/lib64/libpthread.so.0的write()中的

0 0x0000003c5fa0e6fd

来自/usr/lib64/libapr-1.so.0的apr_socket_send()中的1 0x00007ffff79eade7

log4cxx :: helpers中的

2 0x00007ffff7d52bb1 :: Socket :: write(log4cxx :: helpers :: ByteBuffer&)()    来自/usr/lib64/liblog4cxx.so.10

3 0x00007ffff7d595ed in log4cxx :: helpers :: SocketOutputStream :: flush(log4cxx :: helpers :: Pool&)()    来自/usr/lib64/liblog4cxx.so.10

4 0x00007ffff7d5468c in log4cxx :: net :: SocketAppender :: append(log4cxx :: helpers :: ObjectPtrT const&amp;,log4cxx :: helpers :: Pool&amp;)()from /usr/lib64/liblog4cxx.so.10 < / p>

5 0x00007ffff7cd7d9d in log4cxx :: AppenderSkeleton :: doAppend(log4cxx :: helpers :: ObjectPtrT const&amp;,log4cxx :: helpers :: Pool&amp;)()来自/usr/lib64/liblog4cxx.so.10

6 0x00007ffff7cd50f4 in log4cxx :: helpers :: AppenderAttachableImpl :: appendLoopOnAppenders(log4cxx :: helpers :: ObjectPtrT const&amp;,log4cxx :: helpers :: Pool&amp;)()from /usr/lib64/liblog4cxx.so.10 < / p>

7 0x00007ffff7d1adfd in log4cxx :: Logger :: callAppenders(log4cxx :: helpers :: ObjectPtrT const&amp;,log4cxx :: helpers :: Pool&amp;)const()来自/usr/lib64/liblog4cxx.so.10

8 0x00007ffff7d1c4ac in log4cxx :: Logger :: forcedLog(log4cxx :: helpers :: ObjectPtrT const&amp;,std :: basic_string,std :: allocator&gt; const&amp;,log4cxx :: spi :: LocationInfo const&amp;)const( )    来自/ usr / lib64 / liblog4cxx.so.10`

我的问题是,如果服务器停止,可以将log4cxx写日志写入本地文件吗? 如果我再次启动服务器,在应用程序崩溃之前,SocketAppender不会再次收到日志。我怎样才能解决这个问题?还有其他建议通过网络发送日志吗?

0 个答案:

没有答案