当前位置: 首页 > 工具软件 > Log4g > 使用案例 >

LOG4G 学习笔记

沈高峻
2023-12-01

Log4J

由 apache 推出的开源免费日志处理的类库.

为什么需要日志?

  1. 在项目中编写 System.out.println();输出到控制台,当项目发布 到 tomcat 后,没有控制台(在命令行界面能看见.),不容易观察一些 输出结果.
  2. log4j 作用,不仅能把内容输出到控制台,还能把内容输出到文件中。便于观察结果.

使用步骤:

1. 引入依赖

<!-- log4j 日志 -->
<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>

2. 在 src 下新建 log4j.properties

路径和名称都不允许改变

log4j.rootCategory=DEBUG, CONSOLE, LOGFILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n %C %d %L%n

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/myLog.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %m%n %C %d %L%n

3. 代码里记录日志

Logger logger = Logger.getLogger(Test.class);
logger.debug("这是一个调试信息");
logger.info("这是一个info信息");
logger.info(log.getAccOut() + "给" + log.getAccIn() + "在" + new Date().toLocaleString() + "转了"+ log.getMoney());

log4j 输出级别

  • fatal(致命错误) > error (错误) > warn (警告) > info(普通信息) > debug(调试信息)

log4j 输出位置

  • 控制输出目的地: log4j.rootCategory=DEBUG, CONSOLE, LOGFILE

pattern 中常用几个表达式

  • %C 包名+类名
  • %d{YYYY-MM-dd HH:mm:ss} 时间
  • %L 行号
  • %m 信息
  • %n 换行

控制某个局部内容的日志级别

  • 先在总体级别调成Error 不输出无用信息
  • 在设置某个指定位置级别为DEBUG
log4j.rootCategory=INFO, CONSOLE,LOGFILE
log4j.logger.a.b=DEBUG
log4j.logger.a=DEBUG

命名级别

<mapper namespace="com.mapper">
	<select id="selByPage" resultType="People" parameterType="map">
		select * from people limit #{pageStart},#{pageSize}
	</select>
	<select id="selCount" resultType="long">
		select count(*) from people 
	</select>
</mapper>
  • 包级别 log4j.logger.com = DEBUG
  • 类级别 log4j.logger.com.mapper = DEBUG
  • 方法级别 log4j.logger.com.mapper.selByPage = DEBUG
package com.mapper;
public interface StudentMapper {
	@Select("select t.id `teacher.id`,t.name`teacher.name`,s.id id,s.name name, age,tid from student s left join teacher t on t.id=s.tid")
	List<Student> selAll();
	}
  • 包级别 log4j.logger.com.mapper = DEBUG
  • 类级别 log4j.logger.com.mapper.StudentMapper = DEBUG
  • 方法级别 log4j.logger.com.mapper.StudentMapper.selAll = DEBUG
 类似资料: