日志从common-log、self4j、log4j到logback、logstash

1. log的历史

log4j --其他日志 后来log4j--->logback (与log4j同一作者,性能得到提高,配置更灵活)
|
V
common-log统一接口,自动扫描实现类,有缺点,在独立进程中的类扫描不到
|
V
sef4j接口

2.如何打印日志:
log.info("运行错误{}",e.getMessage());
log.info("运行错误",e);
主要使用上述方式打印日志时,如果使用%c%L打印类名和行号时,class的名称显示的是超类的名字,L显示的当前类的行号。

3.项目的坑
core-MD居然用到了3种getLoger的方法,有common-logs的,有sellf4j的,有log4j的,所以在排查时遇到一些问题。
多种日志实现并存时,比如log4j和logback,随机得到日志实现。

由于历史原因,系统有logback、log4j两套日志,试着关闭log4j,后发现spring的日志没有啦,spring和hibernate等使用了log4j.而习题自动找到了logback的配置。另外如果在spring中没有配置logback.xml,则maven启动时使用src/test/resoureces/log_back.xml文件,发布时使用src/main/resource目录下的。

在生产机A上,由于多个项目使用了公共lib,所以日志打印总是有问题,不能上传到logstash,好像也不能生成文件。
在另外一台生产机使用独立lib时时正常。

addActivity属性:是否还是其他匹配打印日志。

比如第一个logger设置了additivity=true,所以除了写入file_access还会写入stdout。
 <logger name="com.mindao.app.ea.interceptor.AccessLogInterceptor" level="info" additivity="true">        
<appender-ref ref="file_access" />
</logger>

<logger name="com.mindao" level="info" additivity="false">
<appender-ref ref="stdout" />
</logger>


4.log4j如何对接logstash

log4j.rootLogger=INFO,console,socket

# for package com.demo.elk, log would be sent to socket appender.
#log4j.logger.com.mindao.elk=info, socket
log4j.logger.com.mindao.elk=info, socket

# appender socket
log4j.appender.socket=org.apache.log4j.net.SocketAppender
log4j.appender.socket.Port=4567
log4j.appender.socket.RemoteHost=120.76.44.235
log4j.appender.socket.layout=org.apache.log4j.PatternLayout
log4j.appender.socket.layout.ConversionPattern=%d [%-5p] [%l] %m%n
log4j.appender.socket.ReconnectionDelay=10000

# appender console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%l] %m%n

logstash的配置
mkdir config
vi config/log4j_to_es.conf
输入以下内容:
# For detail structure of this file# Set: https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html
input {
# For detail config for log4j as input, # See: https://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.html
log4j {
mode => "server"
host => "centos2"
port => 4567
}
}
filter {
}
output {
# For detail config for elasticsearch as output, # See: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
elasticsearch {
action => "index"#The operation on ES
hosts => "centos2:9200"#ElasticSearch host, can be array.
index => "applog"#The index to write data to.
}
}

5 logback如何对接logstash
https://github.com/logstash/logstash-logback-encoder
Including it in your project

Maven style:
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.7</version>
</dependency>
UDP Appender


To output JSON for LoggingEvents to a syslog/UDP channel, use the LogstashSocketAppender in your logback.xml like this:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appendername="stash"class="net.logstash.logback.appender.LogstashSocketAppender">
<host>MyAwesomeSyslogServer</host>
<!-- port is optional (default value shown) -->
<port>514</port>
</appender>
<rootlevel="all">
<appender-refref="stash" />
</root>
</configuration>


logstash的配置
input {
syslog {
codec => "json"
}
}
logback+self4j 进行日志记录 关于logback-test.xml配置详解,包括简单项目demo解压运行 立即下载

相关推荐

项目风险管理全流程解析

按技术、资源、市场、外部环境等类型对风险进行分类,便于团队快速识别风险,提高风险管理效率,避免风险遗漏。项目结束后,总结实际发生的风险和应对效果,找出风险管理中的经验和教训,为后续项目提供参考。

qq_34062333的博客 1471

(4.3.3.1) 日志模块CommonLog引入说明

引入说明1. 腾讯Bugly:异常上报1.1 官网 腾讯Bugly 腾讯Bugly,为移动开发者提供专业的异常上报,运营统计和内测分发解决方案,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈 异常上报 内测分发 应用升级 & 热更新 应用统计 [异常上报: Bugly Android SDK 使用指南] (https://bugly.qq.com/docs/user-gui

JAVA成长之路 1052

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 379

日志总结---从common-log、self4j、log4j到logback、logstash

1. log的历史 log4j --其他日志 后来log4j--->logback (与log4j同一作者,性能得到提高,配置更灵活) | V common-log接口,自动扫描实现类,有确定,在独立进程中的类扫描不到 | V sef4j接口 2.如何打印日志: log.info("运行错误{}",e.getMess...

fengbin2005的专栏 1469

别再到处搜了!高德地图瓦片URL参数(lang、style、ltype)全解析与实战搭配指南

本文全面解析高德地图瓦片URL参数(lang、style、ltype)的核心逻辑与实战应用,提供18种实用参数组合方案,帮助开发者实现从基础到高阶的定制化地图渲染。涵盖语言控制、地图样式、图层类型等关键参数,并分享WebGIS项目中的优化技巧与常见问题解决方案。

weixin_33724046的博客 117

2025年(第十一届)全国大学生统计建模大赛论文及选题分析

基于数据驱动决策:整个研究围绕给定的洪水灾害相关数据进行深入挖掘和分析,从数据清洗、特征分析、模型建立到最终预测,每一步都以数据为基础,通过对数据的有效利用来揭示洪水灾害发生的相关规律和特征,为洪水灾害的风险评估和预测提供依据,符合数据引领未来决策的理念。实际应用导向:洪水灾害是现实中严重影响人类生命财产安全和社会经济发展的重要问题,本研究旨在实现对洪水灾害的预测,其成果可直接应用于防洪减灾工作,如洪水预警、风险评估与区划等,对实际防灾减灾工作具有重要的指导意义,体现了以数据为支撑服务实际应用的特点。

qq_52590045的博客 1万+

log4j,self4j

1、第三方jar包中如果把日志打印到log4j或self4j中,则我们必须配置log4j,否则看不到他们的打印日志(如果有些错误他们之间打印了,并没有拋异常)。 2、需要引入log4j-1.2.xx.jar、slf4j-api-x.x.x.jar、以及slf4j-log4j12-x.x.x.jar,后两个包由slf4j提供,包名中的x表示版本号。 3、log4j启动时,默认会寻找source

ggaofengg的专栏 1611

Proteus仿真实战:基于IIC驱动SSD1306的0.96英寸OLED显示方案解析

本文详细解析了在Proteus仿真环境中基于IIC驱动SSD1306的0.96英寸OLED显示方案。从硬件搭建、IIC接口连接、软件驱动移植到常见问题排查,提供了全面的实战指导,帮助开发者快速实现OLED显示功能并优化性能。

weixin_28724661的博客 769

java common log使用,log4j和commons.logging日志记录的使用方法

#re: log4j和commons.logging日志记录的使用方法2008-03-11 14:08芦苇一 最好与commons-logging一起用,why?1.标准接口,即使将来脱离了log4j也一样用2.简化了编码,减少耦合度:不需在代码中指定log4j配制文件位置,代码中不需要引用log4j的包3.基本所有框架都是这么用的。。。。。。(我相信群众)附加提供一下commons-loggi...

weixin_42517607的博客 830

一句话看懂 vibing-steampunk

摘要: vibing-steampunk(vsp)是一个连接SAP ABAP开发工具(ADT)与AI编码代理(如Claude、GitHub Copilot)的桥梁,通过MCP协议实现自动化代码读写、调试和部署。它利用ADT API直接访问SAP系统,绕过传统GUI操作,支持ECC和S/4HANA等环境。工具提供包分析、依赖检查、LUW行为识别等功能,显著提升ABAP项目维护效率。其创新Hyperfocused模式和方法级编辑大幅降低token消耗,而上下文压缩技术则优化了AI对ABAP代码的理解能力,特别适

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 113

FPGA设计-Vivado的Off-Chip Termination设置问题

经常遇到在FPGA设计时,很多人很迷惑这些关于硬件的终端匹配怎么设置,Vivado的Off-Chip Termination设置问题,这里就详细说一下这个问题。

whm128的博客 2721

为什么要使用SLF4J而不是Log4J

每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging、Apache log4j、logback。但如果你还不知道SLF4J(Simple logging facade for Java)的话,那么是时候去在你项目中学习使用SLF4J了。 在这篇文章中,我们将学习为什么使用SLF4J

wakeUpJava 1481

TI单芯片毫米波雷达1642代码走读(〇)——总纲

前言 近年来,自动驾驶行业发展如火如荼,雷达技术也逐渐从军工封闭圈走向了开放的市场。 毫米波雷达具有全天候探测能力,特别是在雨雪雾天气以及夜间都能可靠工作,并且探测距离相对其他车载传感器非常远,对运动目标非常敏感,价格还低廉,这些特性都使其成为自动驾驶感知层面不可或缺的一环。 现如今的雷达已经不仅仅局限于测距测速测角等传统的功能,雷达技术正在从感知走向认知、从宽带走向超宽带、从二维走向三维四维、从相控阵走向数字阵列、从单通道走向MIMO、从独立工作走向分布式协同、从分立组件走向射频数字一体化。MIMO

3万+

self4j log4j配置与调用

slf4j-api定义了日志的接口,可以使用不同的日志类实现接口,此处以log4j 为例: 引入slf4j-api,slf4j-log4j12 jar包 org.slf4j slf4j-api 1.7.25 org.slf4j slf4j-log4j12 1.7.25 test 添加log4j.propertie

3542

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Log4j/common log和各种服务器集成的问题

Log4j/common log和各种服务器集成的问题   目前的很多商业和非商业的服务器中间件都默认集成了common-log甚至是log4j.因此当我门把我们的应用发布在上面的时候,都会遇到关于log方面的问题.  1.webshpere下面集成log4j.  "WebSphere的类装入器方式有两种方式:PARENT_FIRST和PARENT_LAST。默认值是PARENT_FIRST,

生活 831

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Log4和self4j整合使用

之前项目开发过程中,遇到线上问题时运维找不到具体的日志文件,然后把锅丢给了开发组,对于开发来说,日志是自己记录的,所以找起来容易,但对于运维却很困难,于是开始反思是不是我们的日志打得太low了,在网上看了许多的博文,发现这篇博文java日志框架log4j详细配置及与slf4j联合使用教程 写得很不错,于是做了借鉴总结。 日志在系统开发的过程中扮演着不可替代的角色,对于开发人员来说,好的日志处理...

shuduti的博客 2058

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java common log使用,Java使用Log日志系统(common-logging和log4j)

配置common-logging.properties文件只需要一行即可,放在classpath下,如果是Maven中就在src/resources下org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger11配置log4j.properties文件放在classpath下,如果是Maven中就在src/r...

weixin_39669133的博客 480

apache common log & apache log4j

common log可以理解成适配(俺模式不是很好,文档上写的是wrapper),做这个适配器的目的是能够使用已有的工业标准log系统。common log实现的SimpleLog写的很简单的,就是用system.out/system.err往出输出。SimpleLog并不是一个工业标准的log,那要common log做什么呢?刚说过啦,做适配吗,只是提供了一个简单的默认实现——SimpleLo

活着 1251

java common log使用,Commons-logging + Log4j 使用方法及常见问题

System.out.println()就会无能为力了.关于Commons-loggin + Log4j结合的使用方法网上文章较多,也比较简单,我这里后面有附摘录的认为写得较好的文章下面列出我在应用中碰到的问题问题1:commons-logging.properties文件中有设定org.apache.commons.logging.Log=org.apache.commons.logging.i...

weixin_30873127的博客 1569

Java使用Log日志系统(common-logging和log4j)

使用common-logging和log4j准备开一大项目的话,日志系统必不可少。Apache为了让众多的日志工具有一个相同操作方式,实现了一个通用日志工具包:commons-logging。而Log4j基本上是Java平台上最好的日志组件了。使用ommons-logging的Log接口,并由commons-logging在运行时决定使用哪种日志架构(如Log4j)。现在,Apache通用日志工具c

geekun的博客 1万+

Slf4j和Log4j的区别

原文地址:http://blog.youkuaiyun.com/lifuxiangcaohui/article/details/7278595 log4j 大家都知道,就不在多说了,重点说说slf4j; 简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希 望的l

杨春建的博客 2万+

slf4j log4j logback之间的关系,哪个更好些

slf4j、log4j、还有logback到底有什么关系,用哪个比较好,那就让我们一起来看一看

Butingnal的专栏 7497

java日志组件介绍(common-logging,log4j,slf4j,logback )

common-logging common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-

yycdaizi的专栏 4万+

Java—log4j与commons-logging,slf4j的关系

前面有一篇日志中简单的介绍了 log4j,同时也介绍了它与commons-logging的关系,但是突然冒出来一个slf4j,并且slf4j有取代commons-logging的趋势,所以,我们可以推知slf4j与commons-logging的作用应该 相差不大的。 好,下面开始先讲讲slf4j。 1.slf4j  他只提供一个核心slf4j api(就是slf4j-api.j

victorai60的专栏 797

slf4j+log4j结合使用

这里借鉴了很多大牛们的观点和资料,参考网址:1、http://www.cnblogs.com/ywlaker/p/6124067.html 2、http://www.cnblogs.com/xing901022/p/4149524.html 3、http://www.cnblogs.com/olmlo/p/3143468.html 4、http://www.open-open.com/lib/vi...

qq_41947226的博客 2万+
上一篇: 邮件发送失败?WireShark帮你找原因
下一篇: 日志总结---从common-log、self4j、log4j到logback、logstash
李国才
博客等级 码龄14年 73粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值