首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我可以使用log4j 1.x和log4j.properties文件异步运行日志吗?

我可以使用log4j 1.x和log4j.properties文件异步运行日志吗?
EN

Stack Overflow用户
提问于 2016-05-30 04:43:45
回答 2查看 8.7K关注 0票数 5

我目前正在研究"log4j 1.x“与"logback”(即(slf4j) )的性能。

我可以将异步附加到我的logback中,但是我找不到任何可以异步我的log4j的链接。

异步仅在log4j 2.x中引入?或者有什么方法可以使我的log4j 1.x工作异步。

请帮帮我。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-30 05:44:33

异步日志是Log4j 2的优点之一。而不是使用AsyncAppender,使用异步记录器:性能要好得多。

Log4j 2 性能页比较Log4j-1.x、Logback和Log4j 2。

顺便说一下,Log4j 2有一个名为log4j-1.2-api-2.6.jar的适配器,它允许应用程序使用旧的log4j-1.2API,但使用新的log4j 2实现。

(Log4j-1.x也有一个AsyncAppender。就像Log4j 2 AsyncAppender和Logback AsyncAppender一样,它使用BlockingQueue。Log4j 2的异步记录器使用非阻塞的数据结构,速度要快得多。)

票数 7
EN

Stack Overflow用户

发布于 2018-10-17 00:13:11

log4j.properties不处理DOMConfigurator支持的高级配置功能,例如支持自定义ErrorHandlers、嵌套附加程序(如AsyncAppender )等。

请参阅log4j API文档

在AsyncAppender 1.x中配置log4j有两种方法

  1. 使用log4j.xml配置AsyncAppender,如下所示
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console1" class="org.apache.log4j.ConsoleAppender">
        <param name="target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
        </layout>
    </appender>

    <!--wrap ASYNC around other appender if you want -->
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
        <param name="BufferSize" value="500" />
        <!-- LocationInfo is Optional, use only if location info is required. (Default value : false)-->
        <!-- <param name="LocationInfo" value="true" /> -->
        <appender-ref ref="console1" />
    <root>
        <priority value="debug" />
        <appender-ref ref="ASYNC" />
    </root>
</log4j:configuration>
  1. Programmatically您可以按以下方式以编程方式配置AsyncAppender
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    static {
        enableAsyncAuditLog(Logger.getRootLogger());
    }

    private static void enableAsyncAuditLog(Logger targetLogger) {
        Enumeration<Appender> appenders = targetLogger.getAllAppenders();
        AsyncAppender asyncAppender = new AsyncAppender();
        asyncAppender.setBufferSize(500);
        asyncAppender.setLocationInfo(true); // Otherwise Class and Line info will not be available to logger
        while (appenders.hasMoreElements()) {
            Appender appender = appenders.nextElement();
            if (!(appender instanceof AsyncAppender)) {
                targetLogger.removeAppender(appender);
                asyncAppender.addAppender(appender);
            }
        }
        appenders = asyncAppender.getAllAppenders();
        if (appenders != null && appenders.hasMoreElements()) {
            targetLogger.addAppender(asyncAppender);
        }
    }

您可以参考此项目

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37525996

复制
相关文章
hibenate中log4j.properties文件添加到eclipse中
Hibernate用log4j包来做日志输出,这就要求项目中创建一个log4j的配置文件log4j.properties,否则有些运行日志就无法看到(不会影响程序运行),另外Eclipse控制台视图会输出如下两条警告信息。 log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig). log4j:WARN Please initialize the log4j system properl
闵开慧
2018/03/30
8100
聊聊配置文件 RCE 这件事
在log4j2 的 GitHub项目有个 Pull:https://github.com/apache/logging-log4j2/pull/608
p4nda
2023/01/03
6710
聊聊配置文件 RCE 这件事
细说log4j之log4j 1.x
官网:http://logging.apache.org/log4j/1.2/manual.html
编程随笔
2019/09/11
7460
细说log4j之log4j 1.x
Log4j 学习笔记(二)Log4j快速入门配置文件log4j.properties
在该教程中,我们将展示使用经典的log4j 1.2.x记录java应用程序中的debug或者error级别的日志信息。
青山师
2023/05/04
1.2K0
Log4j 学习笔记(二)Log4j快速入门配置文件log4j.properties
Log4j 学习笔记(三)log4j.properties配置文件详解
关于log4j.properties的配置,网上并没有太多资料,大多是CV大法导致只有一个一模一样的例子。因此,在这里举几个例子,加深大家对log4j.properties的理解。
青山师
2023/05/04
1.3K0
如何在CDSW上调试失败或卡住的Spark应用
默认情况下,CDSW会话中的Spark应用程序只显示ERROR级别的日志,当作业出现异常或卡住时无法查看作业运行详细日志及异常堆栈信息,不能根据日志的上下文正确的定位问题。在Cloudera Data Science Workbench中允许基于每个Project配置较低级别的Spark运行日志记录,Spark2使用的是Apache Log4j,可以通过log4j.properties文件配置日志输出级别。本篇文章Fayson主要介绍如何在CDSW上调试失败或卡住的Spark作业。
Fayson
2018/08/03
1.2K0
如何在CDSW上调试失败或卡住的Spark应用
@Async可以和@Transactional结合使用吗?
在编写Spring在多线程环境下如何确保事务一致性时,我突然联想到@Async注解,心里就在盘算着@Async注解能否和@Transactional注解一起使用呢?
大忽悠爱学习
2022/10/24
3.5K0
@Async可以和@Transactional结合使用吗?
Log4j 日志详细用法
简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式
阳光岛主
2019/02/18
2.6K0
从SSRF 到 RCE —— 对 Spring Cloud Gateway RCE漏洞的分析
有人提出实际上 log4j 和 log4j2 一样易受攻击的,只不过与 log4j2 相比,Log4j 的攻击向量“更安全”
p4nda
2023/01/03
1.1K0
从SSRF 到 RCE —— 对 Spring Cloud Gateway RCE漏洞的分析
log4j 1.x 与 logback 的鸡肋RCE讨论
有人提出实际上 log4j 和 log4j2 一样易受攻击的,只不过与 log4j2 相比,Log4j 的攻击向量“更安全”
p4nda
2023/01/03
2970
log4j 1.x 与 logback 的鸡肋RCE讨论
使用Slf4j集成Log4j2构建项目日志系统的完美解决方案
  最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见几种日志系统,而使用log4j2而不是log4j是因为Log4j 1.x 在高并发情况下出现死锁导致cpu使用率异常飙升,而Log4j2.0基于LMAX Disruptor的异步日志在多线程环境下性能会远远优于Log4j 1.x和logback(官方数据是10倍以上)。
阿豪聊干货
2018/08/09
7010
log4j 配置日志输出(log4j.properties)
1.1 下载解压log4j.jar(地址:http://mirrors.hust.edu.cn/apache/logging/log4j/2.11.0/)
全栈程序员站长
2022/09/13
4820
log4j 配置日志输出(log4j.properties)
ZooKeeper日志配置
ZooKeeper 使用 SLF4J 作为日志的抽象层,默认使用 Log4J 来做实际的日志工作。使用两层日志抽象看起来似乎是多余的。这里简要的说明如何来配置 Log4J,虽然 Log4J 非常灵活且功能强大,但是也有一些复杂,这里只是简要的介绍一下基本的用法。
smartsi
2019/11/26
4.6K0
我可以弃用这个端点吗?
让我们假设你是一个开发人员,接管了 Catalog 微服务的所有权。你被要求弃用/v1/catalog 端点而使用新的/v2/catalog 端点。你该怎么做呢?
CNCF
2022/03/25
1.7K0
我可以弃用这个端点吗?
Python这么火,我可以学吗?
越来越多行业都在应用的Python,主要的应用领域有哪些呢?Python每个人都可以学吗?今天我们就来详细看一下。
老九君
2020/03/11
1.2K0
tomcat日志设置与详解
一是运行中的日志,它主要 记录 运行的一些信息,尤其是一些异常 错误 日志信息 。 二是 访问 日志信息,它 记录 的 访问 的 时间 , IP , 访问 的 资 料等相 关 信息。
全栈程序员站长
2022/08/31
11.1K0
Log4j 1.x JDBCAppender记录日志失效问题详解
官网:http://logging.apache.org/log4j/1.2/manual.html
编程随笔
2019/09/11
7310
Log4j 1.x JDBCAppender记录日志失效问题详解
Confluence 6 log4j 日志级别
有 2 个方法能够对 Confluence 的日志输出进行调整,相关的方法描述在 log4j Logging Levels 中。
HoneyMoose
2019/01/30
5000
log4j 1.x到2.x迁移指南
本页介绍如何迁移当前使用 Log4j 1.x API 的应用程序或库,以使用 Log4j v2 作为其主要日志框架。
从大数据到人工智能
2022/06/15
2.2K0
log4j 1.x到2.x迁移指南
nodejs写入json文件_json文件可以删除吗
哈喽!nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查
全栈程序员站长
2022/11/04
2.9K0
nodejs写入json文件_json文件可以删除吗

相似问题

如果我使用log4j.properties 1.x桥( Log4j -1.2-api),是否需要更新Log4j文件?

311

log4j不读log4j.properties吗?

13

我可以将Eclipse和Maven变量替换到log4j.properties文件中吗?

18

混合log4j 1.x和log4j 2

12

我可以在异步函数中使用等待异步吗?

27
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文