`
fxrz12
  • 浏览: 25190 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

log4j 与序列化出现的问题

阅读更多

当log4j遇上序列化的时候,会无意中报错,

例如:这位外国仁兄的询问

How to fix java.io.NotSerializableException: org.apache.log4j.Logger Error in Java

嗯,很对!也就是说java.io.NotSerializableException: org.apache.log4j.Logger error 

org.apache.lo4j.Logger 不能序列化,问题出现的原因是,序列化的类用上了log4j没有申明静态的实例logger

出错代码:

public class Customer implements Serializable{
private Logger logger =   Logger.getLogger(Customer.class)
}
修正代码:
public class Customer implements Serializable{
private static final Logger logger =   Logger.getLogger(Customer.class)
 
}
 
原因【答案本身来自外文,这里就摘了吧】:
 because here logger instance is neither static or transient and it doesn't implement Serializable or Externalzable interface.
Solving java.io.NotSerializableException: org.apache.log4j.Logger   is simple, you have to prevent logger instance from default serializabtion process, either make it transient or static . Making it static final is preferred option due to many reason because if you make it transient than after deserialization logger instance will be null and any logger.debug() call will result in NullPointerException in Javabecause neither constructor not instance initializer block is called during deserialization. By making it static and final you ensure that its thread-safe and all instance of Customerclass can share same logger instance, By the way this error is also one of the reasonWhy Logger should be declared static and final in Java program .

 log4j路径的控制: $CATALINA_HOME/logs/

 

分享到:
评论

相关推荐

    Apache Log4j反序列化命令执行漏洞

    vulhub靶机里的这个漏洞里缺少了curl或者wget这些命令

    log4j返序列化源码分析

    log4j返序列化源码分析

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    log4j-jsonlayout

    **日志系统与log4j** 日志系统在软件开发中扮演着至关重要的角色,它提供了跟踪程序运行状态、定位错误、调试代码以及监控系统性能的功能。Log4j是Apache组织开发的一个开源日志框架,广泛应用于Java环境,提供灵活...

    log4j需要的所有jar包

    2. **log4j-api.jar**: 提供了API接口,应用程序主要通过这个接口与Log4j交互,创建Logger,设置日志级别,以及使用Layouts和Appenders。 3. **log4j-configuration.jar** (可能不存在,通常使用XML或Properties...

    CVE-2019-17571:Apache Log4j 1.2.X存在反序列化远程代码执行漏洞

    在Log4j 1.2.X中包含一个SocketServer类,该类很容易对不可信数据进行反序列化,当侦听日志数据的不可信网络流量时,与反序列化小工具结合使用时,可以利用该类远程执行任意代码.影响包含目前最新版本. 2. 漏洞危害 高危...

    log4jappender配置kafka使用的jar包

    3. **特定的Log4j-Kafka适配器**:为了使Log4j能够与Kafka进行通信,还需要一个中间件库,比如`log4j-kafka-appender.jar`或`log4j-appender-kafka-*.jar`,具体取决于你选择的实现。 在实际项目中,你可能需要将...

    Hibernate4+SpringMVC+Junit4+log4j环境搭建Jar包

    这里我们关注的是基于Java技术栈的Web应用环境,具体包括Hibernate4、SpringMVC、JUnit4和log4j这四个核心组件。下面将详细介绍这些组件以及如何整合它们进行环境搭建。 **1. Hibernate4** Hibernate是一个开源的...

    影院管理系统(序列化)

    此外,日志记录(如Log4j)和异常处理也是必不可少的部分,它们有助于调试和问题定位。 总之,这个“影院管理系统”项目运用了序列化和反射等核心技术,实现了对象的持久化和动态操作,构建了一个能够处理电影信息...

    C3P0 fastjson log4j POI3.7+3.8 jar包资源

    例如,C3P0可以用于管理数据库连接,FastJSON用于处理和交换JSON格式的数据,Log4j则记录程序运行过程中的日志信息,而Apache POI则帮助处理与Office文档相关的业务需求。理解并熟练掌握这些工具,对于提升Java开发...

    java反序列化验证工具

    可以对Java反序列化漏洞进行验证,是针对weblogic中间件的很好用的工具。

    ElasticSearch 5.4 的测试java工程 依赖包很全 有配置好的log4j

    总的来说,这个Elasticsearch 5.4的Java测试工程提供了一个完整的开发和测试环境,帮助开发者高效地学习和运用Elasticsearch,同时利用Log4j进行有效的日志管理,使得问题排查更为便捷。只需导入工程,即可立即开始...

    hibernate开发的工具包(注解包,mysql包,日志log4j包)

    实体类的设计应当遵循Hibernate的规范,包括使用注解定义属性与数据库字段的映射,以及实现序列化接口以支持持久化。持久化操作可以通过Session的`save()`, `update()`, `delete()`等方法,或者使用HQL或Criteria ...

    flume 简介安装使用案例(将log4j数据写到hdfs中)

    在给定的文件名 `FlumeAvro` 中,Avro 是一种数据序列化格式,被 Flume 支持用于数据传输。Avro 提供了一种紧凑、高效的二进制格式,适用于跨语言数据交换。在 Flume 中使用 Avro,可以通过设置 `agent_name.sinks....

    Log4cxx使用例子

    `chainsaw.sh`是一个用于查看和管理日志的GUI工具,基于Java的 Chainsaw,它与Log4j紧密集成。在本例中,日志不仅被写入文件,还能通过网络发送到运行在本机的Chainsaw服务,这样可以在实时环境中远程监控和分析日志...

    dubbo+mybatis+log4j

    例如,在一个基于Spring Boot的应用中,可以利用Dubbo作为服务提供者和服务消费者之间的通信桥梁,通过MyBatis实现对数据库的操作,而Log4j则负责记录应用运行时的各类日志信息,以便于问题排查和性能分析。...

    DownLloader java Thread 断电下载 线程池 log4j 03

    多线程断点续载下载,断电下载日志恢复,正则表达式,线程池使用,对象序列化,log4j日志

    DownLloader java Thread 断电下载 线程池 log4j 05

    程序暂涉及范围:多线程断点续载下载,断电下载日志恢复,正则表达式,线程池使用,对象序列化,log4j日志 YiDownLoader为下载程序入口 RegExpressionUtil为正则表达式入口 其余的自己看; 该程序还有其他的模块,...

    jxl.jar;dom4j.jar;jsonplugin-0.34.jar;junit-3.8.2.jar;log4j-1.2.14.jar;struts2-codebehind-plugin-2.0

    这些库的组合表明这是一个可能用于企业级Java Web开发的环境,涵盖了数据处理(jxl)、XML操作(dom4j)、JSON序列化、单元测试(JUnit)、日志管理(Log4j)以及MVC框架(Struts2)等关键方面。对于理解和构建此类...

    commons-logging-1.0.4.jar、hessian-3.0.1.jar、log4j-1.2.12.jar

    3. **log4j-1.2.12.jar**:Log4j是Apache的一个开源项目,是Java世界中最流行的日志记录工具之一。1.2.12是其一个较老的版本,尽管如此,它依然被许多遗留系统所使用。Log4j提供了灵活的日志配置,包括控制日志输出...

Global site tag (gtag.js) - Google Analytics