Java 不在记录器的控制台中打印日志
我已经删除了代码中的所有system.out.println(),并添加了ApacheLog4j的记录器。但我的控制台上没有打印任何内容。这是我的log4j.properties文件Java 不在记录器的控制台中打印日志,java,logging,log4j,Java,Logging,Log4j,我已经删除了代码中的所有system.out.println(),并添加了ApacheLog4j的记录器。但我的控制台上没有打印任何内容。这是我的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.FileA
# 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类,如下所示
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
希望这有帮助
祝你好运 将此代码用于您希望实际生成日志的类
private static final Logger LOGGER = Logger.getLogger("Class Name Where u used");
LOGGER.error ("string which u want to print");
LOGGER.info("string which u want to print");
LOGGER.warn("string which u want to print");
使用我在项目中使用的此设置。它将生成到console的日志以及到项目目录的logger.out
很乐意帮忙
你可以打印文件中的日志 log4ppp.appender.services=LoggerAppenderDailyFile log4ppp.appender.services.layout=LoggerLayoutPattern log4php.appender.services.datePattern=Y-m-d log4php.appender.services.file=/home/Logs\u%s log4ppp.appender.services.layout.ConversionPattern=“%24d{ISO8601}[%p]%F:%L%m%n”
log4hp.rootLogger=debug,services试试这个: log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout它不会被打印出来。只打印hibernate查询,但不打印log.info()否:(…相同..只打印hibernate查询什么是prm_sMessage?我已经编写了Logger log=Logger.getLogger(PersonImpl.class.getName());为什么对这个@Syed?我可能是你的项目设置中的一个设置问题,而你正在投我的反对票?哇,谢谢你这么热情的评价。不。这是错误的。可能是它被错误地点击了。我已经投了赞成票。谢谢。但是,除了日志信息,它还打印了很多其他行。我不知道所有其他行我的意思是说我不想要其他日志,除了我在代码中编写的日志。你能帮我们举个例子吗?把你不想要的行放出来,我们不能帮你,如果不确切地知道问题的话。我正在重新设置问题。更新。请检查我不想要任何文件。我只想在我的控制台中,这也是唯一的我的日志。
log4j.rootLogger=INFO, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=logger.out
log4j.appender.FILE.MaxFileSize=1MB
log4j.appender.FILE.MaxBackupIndex=100
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.conversionPattern=%m%n