永发信息网

如何处理hibernate打印一些无关的日志信息

答案:2  悬赏:50  手机版
解决时间 2021-02-22 07:01
  • 提问者网友:辞取
  • 2021-02-21 21:05
如何处理hibernate打印一些无关的日志信息
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-02-21 22:33
步骤
1. 在项目中创建4个包,分别是 log4.debug/error/info/warning
2. 在每个包下创建输出日志的测试代码:
Java代码
log.debug("Debug in Debug Level");
log.info("Info in Debug Level");
log.warn("Warn in Debug Level");
log.error("Error in Debug Level");
3. 在MainClass中调用日志输出:
Java代码
package lv.showcase.log4j;

import lombok.extern.log4j.Log4j;
import lv.showcase.log4j.debug.DebugLog;
import lv.showcase.log4j.error.ErrorLog;
import lv.showcase.log4j.info.InfoLog;
import lv.showcase.log4j.warning.WarnLog;

@Log4j
public class Main {

public static void main(String[] args) {
log.info("========== Log4j Showcase :");
log.debug("You can not see this message in info level.");
DebugLog.log();
InfoLog.log();
WarnLog.log();
ErrorLog.log();
}
}
4. 采用如下log4j配置来控制日志输出:
Java代码
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{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log4j_showcase.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

log4j.appender.R1=org.apache.log4j.FileAppender
log4j.appender.R1.File=main.log
log4j.appender.R1.layout=org.apache.log4j.PatternLayout
log4j.appender.R1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

log4j.logger.lv.showcase.log4j.debug=debug, stdout, file
log4j.logger.lv.showcase.log4j.error=error, stdout, file
log4j.logger.lv.showcase.log4j.info=info, stdout, file
log4j.logger.lv.showcase.log4j.warning=warn, stdout, file

#Main函数的日志会输出到main.log文件中
log4j.logger.lv.showcase.log4j.Main=info, stdout, R1

上述log4j配置做了这几个事情
定义3中输出方式: stdout(标准输出), file(输出到log4_showcase.log), R1(输出到main.log)
使用log4j.logger.{package}=? 方式控制每个包的输出等级, 输出方式采用stdout, file这两种输出方式
使用log4j.logger.{package}.{className}=? 方式控制单个类的输出等级,输出方式采用stdout, main

输出结果
控制台:
Java代码
[java] 2013-08-06 10:22:01,684 INFO Main:? - ========== Log4j Showcase :
[java] 2013-08-06 10:22:01,688 DEBUG DebugLog:? - Debug in Debug Level
[java] 2013-08-06 10:22:01,689 INFO DebugLog:? - Info in Debug Level
[java] 2013-08-06 10:22:01,689 WARN DebugLog:? - Warn in Debug Level
[java] 2013-08-06 10:22:01,690 ERROR DebugLog:? - Error in Debug Level
[java] 2013-08-06 10:22:01,691 INFO InfoLog:? - Info in Info Level
[java] 2013-08-06 10:22:01,691 WARN InfoLog:? - Warn in Info Level
[java] 2013-08-06 10:22:01,692 ERROR InfoLog:? - Error in Info Level
[java] 2013-08-06 10:22:01,693 WARN WarnLog:? - Warn in Warning Level
[java] 2013-08-06 10:22:01,693 ERROR WarnLog:? - Error in Warning Level
[java] 2013-08-06 10:22:01,694 ERROR ErrorLog:? - Error in Error Level
Main.log 输出:
Java代码
2013-08-06 10:22:01,688 DEBUG DebugLog:? - Debug in Debug Level
2013-08-06 10:22:01,689 INFO DebugLog:? - Info in Debug Level
2013-08-06 10:22:01,689 WARN DebugLog:? - Warn in Debug Level
2013-08-06 10:22:01,690 ERROR DebugLog:? - Error in Debug Level
2013-08-06 10:22:01,691 INFO InfoLog:? - Info in Info Level
2013-08-06 10:22:01,691 WARN InfoLog:? - Warn in Info Level
2013-08-06 10:22:01,692 ERROR InfoLog:? - Error in Info Level
2013-08-06 10:22:01,693 WARN WarnLog:? - Warn in Warning Level
2013-08-06 10:22:01,693 ERROR WarnLog:? - Error in Warning Level

总结
实际应用中可以配置多个appender,按照模块将日志分成不同文件
Log4j的日志输出支持按包/类制定级别, 配置方式(log4j.logger.{package}.{className} )
随着项目的演进需要对日志文件进行划分,否则这样生成的日志会让后期日志分析工作变成噩梦
全部回答
  • 1楼网友:woshuo
  • 2021-02-21 22:55
org.hibernate.dialect.oracledialect true
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯