SSH中配置log4j无效的问题.

SSH中配置log4j无效的问题.,第1张

这个你参照下面的,修改输出的内容等级就可以了

### direct log messages to stdout ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###

#log4j.appender.file=org.apache.log4j.FileAppender

#log4j.appender.file.File=hibernate.log

#log4j.appender.file.layout=org.apache.log4j.PatternLayout

#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

#log4j.rootLogger=debug, warn, stdout

log4j.rootCategory=WARN, stdout

#log4j.category.org.springframework.beans.factory=DEBUG

#log4j.logger.org.hibernate=info

#log4j.logger.org.hibernate=debug

### log HQL query parser activity

#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL

#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###

#log4j.logger.org.hibernate.type=info

#log4j.logger.org.hibernate.type=debug

### log schema export/update ###

#log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees

#log4j.logger.org.hibernate.hql=debug

### log cache activity ###

#log4j.logger.org.hibernate.cache=debug

### log transaction activity

#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition

#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###

### leakages when using DriverManagerConnectionProvider ###

#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

步骤:

1、在Maven的porn.xml 文件中添加dependency如下。之后就会添加三个包。

2、之后在项目下添加log4j.properties。

3、在web.xml中加入代码。

4、 使用方法。

5、接下来就能输出了。

6、输出如下。

下面是log4j.properties的配置信息:

1、#输出格式

2、#%m 输出代码中指定的消息

3、#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

4、#%r 输出自应用启动到输出该log信息耗费的毫秒数

5、#%c 输出所属的类目,通常就是所在类的全名

6、#%t 输出产生该日志事件的线程名

7、#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

8、#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921。

9、#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)。

二、格式化例子:

1、log4j.appender.thisProject.file.out.layout.ConversionPattern=log4j-->%d{yyyy MMM dd HH:mm:ss,SSS}%5p{%F\:%L}-%m%n。

三、注意:

1、信息格式化的小知识

这些参数中间可能会参杂一些数字比如:%5p它的意思就是在输出此参数之前加入多少个空格,还有就是里面的“\”的作用是转义字符。

2、log4j.properties文件放置位置

(1)在java project项目中,它放置的位置是在项目的根目录下而不是在项目的src目录下。

(2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat容器的话,是不是需要自己手动加载或者至少要配置一下呢?比如使用Websphere等非apache服务器。

3、对于Java Web项目里面的日志的位置配置

(1)如果是要指定日志文件的位置为D盘下的log.txt文件。 log4j.appender.thisProject.file.out.File=d:\\log.txt。

2)如果指定日志文件的位置为当前的tomcat的工作目录下的某个文件log4j.appender.thisProject.file.out.File=${catalina.home}/logs/logs_tomcat.log

4、log4j的加载机制

(一) log4j.properties加载机制?其实log4j.properties只是log4j的配置文件。程序启动时,log4j组件去读log4j.properties,和读取普通配置文件没多大区别。获取用户配置的一些log4j的属性值,调用想应该的方法为log4j属性设置。

(二)把log4j.properties当作一个struts.xml或者一个hibernate-cfg.xml就可以了。但不同的是,log4j不像struts和hibernate,它不是一个独立的组件,没法自己完成初始化,一般都是什么组件需要它 就去初始化。比如,hibernate默认的日志组件就是log4j,在hibernate初始化的时候它会去初始化log4j。如果你没配置log4j.properties,hibernate会抛出异常,但还是可以正常初始化。

在编写代码的时候需要随时查看工作日志,查看工作日志的好处就是随时能检查出错误。所以我一般就需要在编写代码的前期添加工作日志,以便更好的查看相关错误输出。

工具/原料

idea开发框架

空闲出来的盘符(用来创建日志文件)

方法/步骤

因为用到log4j就一定要先引入log4j的包,如果不是maven的项目就需要下载log4j的jar包,然后复制到lib下面。如果是maven项目就需要直接引入就可以,我这里是先规定的log4j的版本。

规定好版本后,引入log4j的jar包。

在web.xml里面引入log4j,这里面我直接引入了,log4j.properties。

因为在第三步骤里面引入了log4j.propertites那么我们就需要在项目的resources类型的文件夹下面创建一个log4j.properties。

如果有人不知道如何设置resources属性,打开File - Project Structure 左侧选中Project Settings - Modules 右侧选中 你的项目名成,右侧选择第一个Sources选项卡,然后选择需要resources类型的文件夹,选中Resources即可。

打开log4j.properties文件,然后写入显示日志的级别,一般是Info,你也可以显示error等级别,控制台输出和文件输出。

对应的我们就要写控制台输出和文件位置输出的日志相对应的日期格式和输出位置。如果是DEBUG表示输出DEBUG以上级别日志。

上面写完后,我定义了一个文件路径的位置就需要在F盘下面创建文件夹,新建ssm.log,如果你不写它不会报错,但同时也不会给你输出到文件里面,也不会自动创建。所以我需要自己去创建文件夹和路径,如果是linu那就需要直接写路径。

都配置完后,在java类文件输出log日志,需要新定义,然后调用输出INFO级别的日志,如果你定义了别的级别你就需要自己想办法弄出一条模拟日志。我写的是这个 log.info("查询所有用户信息")

写好后重启服务,然后观看控制台是否输出相对应的日志,查看文件里面是否存在日志。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11793080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存