You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "lvlin zeng (JIRA)" <ji...@apache.org> on 2013/09/25 04:59:03 UTC

[jira] [Comment Edited] (LOG4J2-410) java.io.NotSerializableException: org.slf4j.impl.SLF4JLogger

    [ https://issues.apache.org/jira/browse/LOG4J2-410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777095#comment-13777095 ] 

lvlin zeng edited comment on LOG4J2-410 at 9/25/13 2:58 AM:
------------------------------------------------------------

jdk version:1.7
memcached client:spymemcached 2.6

i use the Log4j2 with slf4j interface,which depends on the log4j-slf4j-impl-2.0-beta8.jar,and i put the logger into the EmpBaseInfo model,here is a snippet of this code:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
..........................
public class EmpBaseInfo implements Serializable {

    private final long serialVersionUID = -5413579595663647712L;
    private final Logger logger = LoggerFactory.getLogger(EmpBaseInfo.class);
    private Integer id;
    .................
}

Stack trace:
Caused by: java.io.NotSerializableException: org.slf4j.impl.SLF4JLogger
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) ~[?:1.7.0_17]
	at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1519) ~[?:1.7.0_17]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_17]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_17]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_17]
	at java.lang.reflect.Method.invoke(Method.java:601) ~[?:1.7.0_17]
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) ~[?:1.7.0_17]
	at net.spy.memcached.transcoders.BaseSerializingTranscoder.serialize(BaseSerializingTranscoder.java:81) ~[spymemcached-2.6.jar:]
	... 96 more
                
      was (Author: soryokurin):
    jdk version:1.7
memcached client:spymemcached 2.6

i use the Log4j2 with slf4j interface,which depends on the log4j-slf4j-impl-2.0-beta8.jar,and i put the logger into the EmpBaseInfo model,the exceptionhere is a snippet of this code:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
..........................
public class EmpBaseInfo implements Serializable {

    private final long serialVersionUID = -5413579595663647712L;
    private final Logger logger = LoggerFactory.getLogger(EmpBaseInfo.class);
    private Integer id;
    .................
}

Stack trace:
Caused by: java.io.NotSerializableException: org.slf4j.impl.SLF4JLogger
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) ~[?:1.7.0_17]
	at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1519) ~[?:1.7.0_17]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_17]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_17]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_17]
	at java.lang.reflect.Method.invoke(Method.java:601) ~[?:1.7.0_17]
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.7.0_17]
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) ~[?:1.7.0_17]
	at net.spy.memcached.transcoders.BaseSerializingTranscoder.serialize(BaseSerializingTranscoder.java:81) ~[spymemcached-2.6.jar:]
	... 96 more
                  
>  java.io.NotSerializableException: org.slf4j.impl.SLF4JLogger
> -------------------------------------------------------------
>
>                 Key: LOG4J2-410
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-410
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.0-beta8
>            Reporter: lvlin zeng
>
> When i use a the logger object in a model,and the model will set to some cache like memcached,this exception happens.Maybe this class and some other related class need implements Serializable interface?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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