logback配置

Java 日志组件(二)

无人久伴 提交于 2019-12-18 06:35:13
3、log4j2   log4j2与log4j发生了很大变化,不兼容。log4j仅仅作为一个实际的日志框架,slf4j、commons-logging作为门面统一各种日志框架的混乱格局,现在log4j2也想跳出来当门面,也想统一大家。日志越来越乱了 log4j-api:作为日志接口层,用于统一底层日志系统。 log4j-core:作为上述日志接口的实现,是一个实际的日志框架。   3.1、maven依赖 1 <dependency> 2 <groupId>org.apache.logging.log4j</groupId> 3 <artifactId>log4j-api</artifactId> 4 <version>2.2</version> 5 </dependency> 6 <dependency> 7 <groupId>org.apache.logging.log4j</groupId> 8 <artifactId>log4j-core</artifactId> 9 <version>2.2</version> 10 </dependency>   3.2、使用方式 编写log4j2.xml配置文件(目前log4j2只支持xml、json、yuml,不再支持properties) 1 <?xml version="1.0" encoding="UTF-8"?> 2

logback根据业务分开打印日志

自闭症网瘾萝莉.ら 提交于 2019-12-17 01:00:16
业务中用到根据不同设备来打印日志,直接上代码 < ! -- 不同的业务逻辑日志打印到指定文件夹 -- > < logger name = "AB101" additivity = "false" level = "INFO" > < appender - ref ref = "AB101Appender" / > < / logger > < logger name = "B200" additivity = "false" level = "INFO" > < appender - ref ref = "B200Appender" / > < / logger > < ! -- 不同业务逻辑的日志打印到不同文件 -- > < appender name = "AB101Appender" class = "ch.qos.logback.core.rolling.RollingFileAppender" > < File > $ { log . path } / AB101 . log < / File > < append > true < / append > < filter class = "ch.qos.logback.classic.filter.LevelFilter" > < level > INFO < / level > < onMatch > ACCEPT <

logback与Log4J的区别

别来无恙 提交于 2019-12-16 15:00:43
Logback和log4j是非常相似的,如果你对log4j很熟悉,那对logback很快就会得心应手。下面列了logback相对于log4j的一些优点: 更快的实现 Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小了。 非常充分的测试 Logback经过了几年,数不清小时的测试。Logback的测试完全不同级别的。在作者的观点,这是简单重要的原因选择logback而不是log4j。 Logback-classic非常自然实现了SLF4j Logback-classic实现了SLF4j。在使用SLF4j中,你都感觉不到logback-classic。而且因为logback-classic非常自然地实现了SLF4J,所以切换到log4j或者其他,非常容易,只需要提供成另一个jar包就OK,根本不需要去动那些通过SLF4JAPI实现的代码。 非常充分的文档 官方网站有两百多页的文档。 自动重新加载配置文件 当配置文件修改了,Logback-classic能自动重新加载配置文件。扫描过程快且安全,它并不需要另外创建一个扫描线程。这个技术充分保证了应用程序能跑得很欢在JEE环境里面。 Lilith Lilith是log事件的观察者,和log4j的chainsaw类似。而lilith还能处理大数量的log数据

springboot 多环境logback日志路径配置

那年仲夏 提交于 2019-12-16 12:21:43
1.在springboot中指定启动环境有几种方式 命令行启动springboot jar包,java -jar xxx.jar 后面跟上 “--spring.profiles.active=prod” idea “Run/debug Configration"中 "vm Option"选项添加 “-Dspring.profiles.active=prod” “application.yml"配置文件指定当前环境 "srping.profiles.active: prod" 在资源文件夹下除了application.yml外,不同环境配置文件对应application-xxx.yml,比如dev开发环境配置logback日志文件路径为 /Users/xxx/logs ,在prod生产环境中配置日志文件路径为 /root/logs 2.logback.xml需要加载不同环境配置文件中“logback.home”变量 <!-- 读取application.yml中配置的日志文件路径,没有这一步的话取不到logback.home的值 --> <springProperty scope="context" name="LOG_HOME" source="logback.home"/> 来源: https://www.cnblogs.com/qiang9527/p/12030989.html

springboot整合logback

…衆ロ難τιáo~ 提交于 2019-12-14 01:04:35
因为是springboot2.0项目已经集成了logback,无需引包 < parent > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - parent < / artifactId > < version > 2.2 .1 . RELEASE < / version > < relativePath / > < ! -- lookup parent from repository -- > < / parent > < parent > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - dependencies < / artifactId > < version > 2.2 .1 . RELEASE < / version > < relativePath > . . / . . /spring - boot - dependencies < / relativePath > < / parent > < dependency > < groupId > ch . qos . logback < / groupId

springboot使用logback

笑着哭i 提交于 2019-12-12 11:44:50
logback-spring.xml配置 首先,官方推荐使用的xml名字的格式为:logback-spring.xml而不是logback.xml,至于为什么,因为带spring后缀的可以使用这个标签。 在resource下创建logback-spring.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> <!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --> <!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> <configuration scan="true" scanPeriod="10 seconds"> <!--<include resource="org/springframework/boot/logging/logback/base

Logback日志自定义配置

馋奶兔 提交于 2019-12-12 05:04:50
Logback日志自定义配置 即便如此,还是有很多想要的东西显示不了,这时就可自定义配置。比如我希望每条日志有个uuid类型的id,希望每条日志能打印ip地址 一、新建两个配置类,重写convert方法 package cn.jiashubing.config.logback; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback.classic.spi.ILoggingEvent; import java.util.UUID; public class LogIdConfig extends ClassicConverter { @Override public String convert(ILoggingEvent event) { return UUID.randomUUID().toString().replaceAll("-", ""); } } package cn.jiashubing.config.logback; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback.classic.spi.ILoggingEvent; import java.net

SpringBoot日志处理之Logback

北慕城南 提交于 2019-12-10 22:52:23
日志处理是一个正式项目必备的功能,日志要能够根据时间、类型等要素,根据指定格式来保存指定的日志,方便我们观察程序运行情况、定位程序bug。 SpringBoot中推荐使用Logback日志框架。 本节示例项目在https://github.com/laolunsi/spring-boot-examples slf4j:一个针对各类Java日志框架的统一facade抽象。 java常见日志框架:java.util.logging, log4j, logback, commons-logging logback是log4j的作者开发的新一代日志框架,目前应用最广泛。SpringBoot默认使用logback,默认INFO级别 Logback: 日志加载顺序:logback.xml -> application.properties -> logback-spring.xml 一、日志级别 log4j定义的日志级别:debug/info/warn/error/fatal warn,潜在错误;error,错误,可能导致程序退出;fatal,严重错误,程序会退出 还有两个特殊的级别:OFF-最高级别,ALL-最低级别 log4j建议仅使用debug/info/warn/error四个级别 日志级别:ERROR -> WARN -> INFO -> DEBUG 如配置日志级别为INFO

你知道为什么阿里禁止工程师直接使用日志系统(Log4j、Logback)中的API吗?

谁说胖子不能爱 提交于 2019-12-10 17:25:04
作为 Java 程序员,我想很多人都知道日志对于一个程序的重要性,尤其是 Web 应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。 所以,日志在 Java Web 应用中至关重要,但是,很多人却以为日志输出只是一件简单的事情,所以会经常忽略和日志相关的问题。在接下来的几篇文章中,我会来介绍介绍这个容易被大家忽视,但同时也容易导致故障的知识点。 Java 语言之所以强大,就是因为他很成熟的生态体系。包括日志这一功能,就有很多成熟的开源框架可以被直接使用。 首先,我们先来看一下目前有哪些框架被广泛的使用。 常用日志框架 j.u.l  j.u.l 是 java.util.logging 包的简称,是 JDK 在 1.4 版本中引入的 Java 原生日志框架。Java Logging API 提供了七个日志级别用来控制输出。这七个级别分别是:SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST。 Log4j  Log4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件,甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是

Could not initialize class org.apache.log4j.Log4

蓝咒 提交于 2019-12-09 20:30:02
(一) 现象与解决方法 前些天在进行storm job的开发时候突然报了一个错误,记录一下 Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFactory 当然我们的第一个反应是log4j这个包缺失(当然也有这种情况,需要首先确认),打开pom文件查看依赖,文件确实存在。 后经网上搜索加边上大牛指点发现: log4j-over-slf4j.jar 和 slf4j-log4j12.jar 在同一个classpath下就会出现这个错误。 解决方法: 将slf4j-log4j12.jar从相关的jar中排除 (二) 日志组件tips 那么问题来了,为啥会有这种冲突呢?在这里需要简单的说一下log的故事! (1)common-logging、log4j、slf4j、logback common-logging common-logging是apache提供的一个通用的日志接口; 在common-logging中,有一个Simple logger的简单实现,但是它功能很弱,所以使用common-logging,通常都是配合着log4j来使用; common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库