我已经删除了代码中的所有system.out.println(),并添加了apache log4j的Logger。但我的控制台上没有打印任何内容。这是我的 log4j.properties 文件
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
我按如下方式调用记录器类
Logger log = Logger.getLogger(PersonImpl.class.getName());
除了我的 log.info() 之外,还打印了其他日志。
DEBUG [http-bio-8080-exec-3] (Table.java:505) - No alter strings for table : hibernate_sequence
DEBUG [http-bio-8080-exec-3] (JtaPlatformInitiator.java:42) - No JtaPlatform was specified, checking resolver
DEBUG [http-bio-8080-exec-3] (JtaPlatformResolverInitiator.java:33) - No JtaPlatformResolver was specified, using default [org.hibernate.engine.transaction.jta.platform.internal.StandardJtaPlatformResolver]
DEBUG [http-bio-8080-exec-3] (StandardJtaPlatformResolver.java:101) - Could not resolve JtaPlatform, using default [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
DEBUG [http-bio-8080-exec-3] (NamedQueryRepository.java:149) - Checking 0 named HQL queries
DEBUG [http-bio-8080-exec-3] (NamedQueryRepository.java:165) - Checking 0 named SQL queries
最佳答案
您只添加了一个FileAppender
(这将导致日志仅写入文件中),但如果您希望日志记录成功,您还需要添加一个ConsoleAppender
也在控制台中完成。
可以按如下方式完成:
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} %-5p %c{1}:%L - %m%n
并在rootLogger中添加appender的名称,如下所示
log4j.rootLogger = DEBUG, X, stdout
除此之外,如果您想关闭 Hibernate 特定日志,您还必须这样做
log4j.logger.org.hibernate=fatal or log4j.logger.org.hibernate=off
希望这有帮助!
祝你好运!
关于java - 不在 Logger 控制台中打印日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35644250/