log4j

commons-logging中无法寻找log4j

馋奶兔 提交于 2019-12-16 15:44:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 也许大家看到这个题目的时候,会想,commons-logging对log4j做了很好的支持,为什么会找不到呢! 但是我想告诉大家的事,今天由于我对Tomcat下lib的理解不深,就出现了一个这样让人费解的现象: 前提: 1. classPath下配置了log4j.properties文件 操作: 1. org.apache.commons.logging.LogFactory.getLog(key)获取的Log 2. 通过Log.getName(),发现是 org.apache.commons.logging.impl. Jdk14Logger 于是,我在网上查找了一些资料,得到了一致的观点(来源: http://javacrazyer.iteye.com/blog/1135493 ): (1).common-logging首先在CLASSPATH中查找commons-logging.properties文件。这个属性文件至少定义org.apache.commons.logging.Log属性,它的值应该是上述任意Log接口实现的完整限定名称。如果找到 org.apache.commons.logging.Log属相,则使用该属相对应的日志组件。结束发现过程。 (2).如果上面的步骤失败(文件不存在或属相不存在

commons-logging 和 log4j 之间的关系

浪尽此生 提交于 2019-12-16 15:36:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们在做项目时,日志的记录是必不可少的一项任务,而我们通常是使用 apache 的 log4j 日志管理工具。然而,在项目中,我们经常会看到两个 jar 包:commons-logging.jar 和 log4j.rar。为什么我们在使用 log4j 的同时还要引入 commons-logging.jar 呢,或者说不用 commons-logging.jar 可不可以,这两者之间到底是怎么的一种关系呢? 作为记录日志的工具,它至少应该包含如下几个组成部分(组件): 1. Logger 记录器组件负责产生日志,并能够对日志信息进行分类筛选,控制什么样的日志应该被输出,什么样的日志应该被忽略。它还有一个重要的属性 - 日志级别。不管何种日志记录工具,大概包含了如下几种日志级别:DEBUG, INFO, WARN, ERROR 和 FATAL。 2. Level 日志级别组件。 3. Appender 日志记录工具基本上通过 Appender 组件来输出到目的地的,一个 Appender 实例就表示了一个输出的目的地。 4. Layout Layout 组件负责格式化输出的日志信息,一个 Appender 只能有一个 Layout。 我们再来看看 log4j.jar,打开 jar 包,我们可以看到 Logger

公司项目Log4j 使用MDC 记录 sessionid

拥有回忆 提交于 2019-12-16 15:23:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 具体原理这里不再详述。三个地方加上配置即可。 web.xml <!-- Log4j日志过滤器 --> <filter> <filter-name>log4jFilter</filter-name> <filter-class>com.citicpru.imobile.web.filter.Log4jFilter</filter-class> </filter> <filter-mapping> <filter-name>log4jFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> log4j filter public class Log4jFilter implements Filter { private final static Logger logger = Logger.getLogger(Log4jFilter.class); private final static String SESSION_ID="sessionId"; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override

Spring boot中使用log4j

杀马特。学长 韩版系。学妹 提交于 2019-12-16 15:06:20
  我们知道,Spring Boot中默认日志工具为logback,但是对于习惯了log4j的开发者,Spring Boot依然可以很好的支持,只是需要做一些小小的配置功能。Spring Boot使用log4j只需要一下几步 引入log4j依赖   在创建Spring Boot工程时,我们引入了 spring-boot-starter ,其中包含了 spring-boot-starter-logging ,该依赖内容就是Spring Boot默认的日志框架Logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖,就像下面这样 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot<

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数据

log4j入门采坑

我只是一个虾纸丫 提交于 2019-12-16 06:19:12
简介 日志的重要性不多说了,使用方法就是把log4j的jar包扔到项目里,然后在资源文件夹中添加一个log4j.properties的配置文件即可,下面直接说属性文件的配置,(刚入门,只学会了这一种配置方式)xml形式的配置省略了哈 log4j下载地址 maven依赖 < dependency > < groupId > log4j </ groupId > < artifactId > log4j </ artifactId > < version > 1.2.17 </ version > </ dependency > 配置 ​ 没接触log4j之前,我自己想象中的日志配置应该包含这些内容,1.日志存在哪儿,2.日志内容记录了什么。带着这样的疑问开始了入坑之旅 。其实我的猜测中少了一项, 日志级别 。专业点的说法log4j配置文件中主要包含了一下三点: 日志等级 日志的输出方式 日志的布局样式 1.日志等级 log4j.rootLogger 日志等级决定了项目中,日志信息的最低等级,【ALL < DEBUG < INFO <WARN < ERROR < FATAL < OFF】 配置时我们只使用其中的四个即可,【DEBUG INFO WARN ERROR】 当然了,一个配置文件可以多个附加方式输出跟在等级后面用 逗号 隔开 例: log4j.rootLogger=INFO

log4j的配置文件内容

跟風遠走 提交于 2019-12-15 05:04:33
log4j.rootCategory=DEBUG, CONSOLE,LOGFILE log4j.logger.com.bjsxt.service.impl=debug,CONSOLE,LOGFILE log4j.logger.com.bjsxt.service.impl.EmpServiceImpl=INFO,CONSOLE,LOGFILE log4j.logger.com.bjsxt.service.impl.EmpServiceImpl.inserEmpInfo=ERROR,CONSOLE,LOGFILE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=-%p-%d{yyyy/MM/dd HH:mm:ss,SSS}-%l-%L-%m%n log4j.appender.LOGFILE=org.apache.log4j.FileAppender log4j.appender.LOGFILE.File=D:/axis.log log4j.appender.LOGFILE.Append=true log4j

为什么是SLF4J而不是Log4J?

我与影子孤独终老i 提交于 2019-12-15 03:37:26
slf4j不同于其他日志类库,与其它有很大的不同。slf4j(simple logging facade for java)不是一个真正的日志实现,而是一个抽象层( abstraction layer),也可以理解为一个接口,它是一种适配器的实现方式,它本身不具有输出日志的功能,输出日志还是由log4j、logback等这样的日志组件来进行输出。如下图描述slf4j和log4j的关系 下面我来举个场景,现在开发项目都是使用maven进行构建开发,假设架构师a开发了一个order.jar通用组件,他在程序中使用的是log4j组件进行日志输出;程序员b自己之前一直在开发自己的业务模块,并且他在程序中使用的是logback日志组件,突然有一天程序员b需要在自己的业务系统中使用架构师a的order.jar通用组件,这个时候问题就出现了,由于两套程序使用了不同的日志组件,程序员b除了要维护自己的logback日志组件配置,还需要维护order,jar中的日志组件配置,这个问题是很头疼的。其实解决这一切问题也不是什么难事,使用slf4j就可以顺利解决。 总的来说,slf4j使你的代码独立于任意一个特定的日志api,这是一个对于开发api的开发者很好的思想。虽然抽象日志类库的思想已经不是新鲜的事物而且apache commons logging也已经在使用这种思想了

put log4j logging httpclient

[亡魂溺海] 提交于 2019-12-14 04:26:23
问题 I want to put on logging in httpclient with log4j. Doing this, I added a file commons-logging.properties with the content org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger. Then I added a file log4j.properties with the following content provided by httpclient documentation as a logging example: log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout

Looking for a windows bat script to compress and move log4j log files

荒凉一梦 提交于 2019-12-14 04:05:48
问题 I have a log4j config that rotates my logs daily. I want to be able to create a script that will compress and move yesterdays log files and move them to a mapped drive on windows. 回答1: If your compression program has a CLI, you can easily create a batch script to do the following with your log file, or log files, or log directory containing the log file(s): (x)copy your items if the compression program cannot handle locked items compress the items move the compressed archive to your directory