2016-02-26 261 views
1

我已經刪除了我的代碼中的所有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 

回答

0

你只加了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如果你想關閉休眠特定日誌添加附加目的地的名稱,這樣

log4j.rootLogger = DEBUG, X, stdout 
從這個

分開,你將必須做

log4j.logger.org.hibernate=fatal or log4j.logger.org.hibernate=off 

希望這有助於!

祝你好運!

+0

謝謝..但是,除了日誌信息之外,它還打印其他行代碼行。我不想要所有其他行 – Syed

+0

我的意思是說我不想要其他日誌,除了我在代碼中寫入的日誌。 – Syed

+0

你可以幫我們舉例說明你不想要的線條,我們無法完全瞭解問題 – Vihar

0

將此代碼用於您想要實際生成日誌的類。

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"); 

使用此設置我已經做在我的項目。它會生成您的日誌到控制檯,以及logger.out到項目目錄

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 

樂意幫助!

+0

它沒有得到印刷。只有休眠查詢得到打印,但不是log.info() – Syed

+0

log4j.rootLogger = ALL用代碼的第一行代替這個.. –

+0

否:(同一件事..只有休眠查詢 – Syed

0

U可以打印在日誌文件

log4php.appender.services = LoggerAppenderDailyFile

log4php.appender.services.layout = LoggerLayoutPattern

log4php.appender.services.datePattern = YMD

log4php.appender.services.file =/home/Logs_%s

log4php.appender.services.layout.ConversionPattern = 「%24d的{} ISO8601 [%P]%F:%L%M%N」

log4php.rootLogger =調試,服務

+0

Vishal我不想在任何文件中,我只是想在我的控制檯中,也只是我的日誌。 – Syed

0

嘗試:

log4j。rootLogger = DEBUG,標準輸出

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

log4j.appender.stdout.Target = System.out的

log4j.appender.stdout.layout =組織.apache.log4j.PatternLayout