这里将configmap挂载到/etc/config目录,然后在容器中运行命令查看该文件内容,最后查看pod的日志,确实输出了文件的内容:
一、简介 JUL: JUL全称Java util Logging是java原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。...常见的日志门面 : JCL、slf4j 常见的日志实现: JUL、log4j、logback、log4j2 日志框架出现的历史顺序: log4j —> JUL—> JCL—> slf4j —> logback...指定日志文件的字符集 log4j.appender.rollingFile.encoding = UTF-8 #总共只会维护10个最大 1 MB 的文件 # 指定日志文件内容的大小(超过以后重新复制到新的文件...Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有: 异常处理:在logback中,Appender中的异常不会被应用感知到,...使用了SLF4J作为日志门面。 将JUL也转换成slf4j。 也可以使用log4j2作为日志门面,但是最终也是通过slf4j调用logback。 最终的输出都是采用logback进行日志输出的。
直到JDK1.4才引入java.util.logging包,JUL。...存在的问题:动态绑定机制可能导致一些难以调试的配置问题,如在某些环境下可能绑定到意外的日志实现。 SLF4J 官网,GitHub。...slf4j-logj12:SLF4J提供,下同。 slf4j-jdk14:使用JUL打印 slf4j-simple:使用SLF4J自带 slf4j-nop:不打印日志 slf4j-jcl:?...Bridging,桥接是指将某个特定的日志库的日志请求重定向到SLF4J,使得所有的日志调用最终都通过SLF4J处理。这对于希望将整个应用程序统一到一个日志框架下非常有用。...在LoggerConfig拥有一列类的过滤器,这些过滤器将会过来所有的记录日志的事件,只有符合要求的日志才会被传递到Appenders。
java领域存在多种日志框架,目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul。...现在我们需要统一日志方案,统一使用SLF4J,把他们的日志输出重定向到SLF4J,然后 SLF4J 又会根据绑定器把日志交给具体的日志实现工具。...Slf4j带有几个桥接模块,可以重定向log4j,JCL和java.util.logging中的API到Slf4j。...里的Simple Logger重定向到slf4j jul-to-slf4j-version.jar 将Java Util Logging重定向到slf4j 桥接方式参见下图 ?...但由于同时jul-to-slf4j.jar的存在,会将所有对jul api的调用委托给相应等值的slf4j,所以jul-to-slf4j.jar和slf4j-jdk14.jar同时存在会形成死循环 原文
java领域存在多种日志框架,目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul。...现在我们需要统一日志方案,统一使用SLF4J,把他们的日志输出重定向到SLF4J,然后 SLF4J 又会根据绑定器把日志交给具体的日志实现工具。...Slf4j带有几个桥接模块,可以重定向log4j,JCL和java.util.logging中的API到Slf4j。...里的Simple Logger重定向到slf4j jul-to-slf4j-version.jar 将Java Util Logging重定向到slf4j 桥接方式参见下图 ?...但由于同时jul-to-slf4j.jar的存在,会将所有对jul api的调用委托给相应等值的slf4j,所以jul-to-slf4j.jar和slf4j-jdk14.jar同时存在会形成死循环 参考链接
本期内容提要 SLF4J 与 JUL、Log4j1、Log4j2、Logback 的集成原理 1....POM 依赖:slf4j-api 通过 slf4j-log4j12 绑定到 log4j1.2; org.slf4j <...; } } 运行结果: POM 依赖:slf4j-api 通过 log4j-slf4j-impl 绑定到 log4j2; org.slf4j...; } } 运行结果: POM 依赖:将 JUL、JCL 的调用都通过 SLF4J 转发给 Log4j2; jul's api call redirect to slf4j --> org.slf4j <artifactId
logback-classic: logback的主要日志依赖 log4j-to-slf4j:将lo4j日志桥接到了slf4j日志框架,spring 框架默认使用的,所以需要该依赖 jul-to-slf4j...:将jul日志桥接到了slf4j日志框架,tomcat框架默认使用的,jul 即Java Util Logging 正因为Spring Boot 使用到了Spring、Tomcat,但两者都各自使用了不同的日志框架...这里我们看到两个依赖都桥接到了slf4j,那什么是slf4j?大部分人应该都知道slf4j是一种抽象日志框架,要能够输出日志,slf4j还需要绑定到具体的日志框架,比如logback-classic。...那为什么会出来slf4j呢。 到目前为止Java生态有很多的日志框架:logback、log4j、log4j2、simpleLog、JUL等。...,使用SLF4J来确定具体的日志框架,更多的桥接器可以到官网中查看。
基本的都是直接使用别人配置好的东西,那么这么多的日志框架,他是如何做到日志的统一打印呢,spring是如何实现的,springboot是如何实现,又有哪些日志框架呢,具体是如何实现以及选择的呢 ---- 日志框架 Jul...现在我们需要统一日志方案,统一使用Slf4j,把他们的日志输出重定向到Slf4j,然后Slf4j又会根据绑定器把日志交给具体的日志实现工具.Slf4j带有几个桥接模块,可以重定向Log4j,Log4j2...,JCL和JUL中的Api到Slf4j。...--jul桥接器--> org.slf4j jul-to-slf4jjul-to-slf4j.jar的存在,会将所有对jul api的调用委托给相应等值的slf4j,所以jul-to-slf4j.jar和slf4j-jdk14
该系列博文会告诉你如何从入门到进阶,从servlet到框架,从ssm再到SpringBoot,一步步地学习JavaWeb基础知识,并上手进行实战,接着了解JavaWeb项目中经常要使用的技术和组件,包括日志组件...jul-to-slf4j是把对jul的调用桥接到slf4j上,log4j-over-slf4j是把对log4j的调用桥接到slf4j。...到这个时候一切看起来都很简单,很美好。接口和实现做了良好的分离,在统一的JCL之下,不改变任何代码,就可以通过配置就换用功能更强大,或者性能更好的日志库实现。 这种简单美好一直持续到SLF4J出现。...可以看到甚至 Log4j 和 JUL 都可以桥接到SLF4J,再通过 SLF4J 适配到到 Logback!...Log4j2 现在有了更好的 SLF4J 和 Logback,慢慢取代JCL 和 Log4j ,事情到这里总该大统一圆满结束了吧。
该系列博文会告诉你如何从入门到进阶,从servlet到框架,从ssm再到SpringBoot,一步步地学习JavaWeb基础知识,并上手进行实战,接着了解JavaWeb项目中经常要使用的技术和组件,包括日志组件...jul-to-slf4j是把对jul的调用桥接到slf4j上,log4j-over-slf4j是把对log4j的调用桥接到slf4j。...(Simple Logging Facade for Java,缩写Slf4j) 记录型日志框架: JUL: JDK中的日志记录工具,也常称为JDKLog、jdk-logging,自Java1.4以来的官方日志实现...这种简单美好一直持续到SLF4J出现。...Log4j2 现在有了更好的 SLF4J 和 Logback,慢慢取代JCL 和 Log4j ,事情到这里总该大统一圆满结束了吧。
日志实现有:log4j, log4j2,logback,jul(java.util.logging)。公司的日志框架选型是slf4j + log4j2。...jcl: commons-logging包含jcl的全部原生内容,log4j-jcl是jcl到log4j2的桥梁,jcl-over-slf4j是jcl到slf4j的桥梁。...slf4j-jdk14:slf4j到jul的桥梁。 slf4j-log4j12: slf4j到log4j的桥梁。 log4j-slf4j-impl: slf4j到log4j2的桥梁。...logback-classic: slf4j到logback的桥梁。 slf4j-jcl: slf4j到jcl的桥梁。 如果某一个实际的日志框架转向slf4j。...jul-to-slf4j:jul适配slf4j。 log4j-over-slf4j:log4j2适配slf4j。
log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...slf4j + jul slf4j-api.jar + slf4j-jdk14.jar 也可以只用slf4j无日志实现 slf4j-api.jar + slf4j-nop.jar SLF4J的适配 slf4j...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。
log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...slf4j + jul slf4j-api.jar + slf4j-jdk14.jar 也可以只用slf4j无日志实现 slf4j-api.jar + slf4j-nop.jar SLF4J的适配 slf4j...其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL 使用jul-to-slf4j.jar
1、log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 2、Apache要求把log4j并入到JDK,SUN拒绝...,并在jdk1.4版本后增加了JUL(java.util.logging) 3、毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...+ logback-core.jar slf4j + log4j slf4j-api.jar + slf4j-log4j12.jar + log4j.jar slf4j + jul slf4j-api.jar...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。
适配器层(包括logback-classic也算适配器层)最多只能选1个包存在,否则slf4j的日志有可能输出到非预料位置 4. jul 桥接 slf4j 失败问题 上述 slf4j 使用原则中有一个问题...就无法实现用 jul-to-slf4j 实现对 jul 日志框架的桥接了。...这是 slf4j 使用中的一个常见的问题,你会发现虽然配置好了 slf4j 的依赖并且正常启动,但基于 jul 的日志仍然输出到了默认的位置,那么,如何来解决这个问题呢?...slf4j 的桥接组件 jul-to-slf4j 与其他桥接组件是完全不同的,它并没有实现它所桥接的 jul 的任何类,而是基于 jul 的框架机制,实现了一套日志输出 handler 来实现日志输出时调用...这在官方文档中有详细的介绍: http://www.slf4j.org/legacy.html 有两种方法可以实现对 jul 的桥接: 1.
log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...图来源于官方文档 其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL 使用...jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。
log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...upload successful 其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) upload successful 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明
且日志粒度不够细 第二阶段 2001年,一个ceki Gulcü的大佬搞了一个日志框架 log4j后来( log4j成为Apache项目,Ceki加入Apache组织 Apache还曾经建议Sun引入Log4j到Java...第三阶段 sun有自己的小心思,2002年2月JDK1.4发布,Sun推出了自己的日志标准库JUL(Java Util Logging),其实是照着Log4j抄的,而且还没抄好,还是在JDK1.5以后性能和可用性才有所提升...由于Log4j比JUL好用,并且成熟,所以Log4j在选择上占据了一定的优势。...,也就是日志抽象层,支持运行时动态加载日志组件的实现,当然也提供一个默认实现Simple Log(在 ClassLoader 中进行查找,如果能找到Log4j则默认使用llog4j实现,如果没有则使用JUL...但是JUL有三个缺点: 1.效率较低。 2.容易引发混乱。 3.使用了自定义ClassLoader的程序中,使用JCL会引发内存泄露。
log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...图来源于官方文档 image.png 其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) image.png 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。
后来发现这种方式真的有点low,从JDK1.4开始提供java.until.logging,后来大佬发现JUL太难用了,就自己手撸了个log4j,后来log4j发现安全漏洞,加上代码结构问题难以维护,于是从...; // java.until.logging,简称jul import java.util.logging.Logger; Logger logger_jul = Logger.getLogger(...假设一个项目在漫长的升级过程中,想从jul升级到logback,还得需要修改代码。如果100个class中使用了jul,就得修改100个地方,这是多么一个繁琐的工作。...如slf4j官方图所示: 这就是slf4j和其他框架的组合,使用slf4j需要首先导入slf4j-api.jar,和log4j配合,你就要导入log4j.jar,以及他们之间的桥接包slf4j-log412...使用总结 "Class path contains multiple SLF4J bindings." 在使用slf4j的时候会遇到以上的报告信息。我也曾遇到过web服务因为slf4j问题启动失败。
领取专属 10元无门槛券
手把手带您无忧上云