2016-03-17 3 views
0

Я использую Payara 4.1 и Netbeans 8.1.Получить org.springframework, чтобы остановить загрязнение моих журналов

Когда я запускаю мое приложение, эти четыре линии являются одними из первых, чтобы быть зарегистрированным:

#!## LogManagerService.postConstruct : rootFolder=/opt/payara41/glassfish 
#!## LogManagerService.postConstruct : templateDir=/opt/payara41/glassfish/lib/templates 
#!## LogManagerService.postConstruct : src=/opt/payara41/glassfish/lib/templates/logging.properties 
#!## LogManagerService.postConstruct : dest=/opt/payara41/glassfish/domains/domain1/config/logging.properties 

Я добавил строку org.springframework=WARNING в конце последнего logging.properties файла, указанного выше, и перезапустить свой сервер. Это не показало эффекта. Когда я открываю asadmin оболочки /opt/payara41/bin/asadmin и запустить list-log-attributes, вот что я получаю:

asadmin> list-log-attributes 
com.sun.enterprise.server.logging.GFFileHandler.excludeFields <> 
com.sun.enterprise.server.logging.GFFileHandler.file <${com.sun.aas.instanceRoot}/logs/server.log> 
com.sun.enterprise.server.logging.GFFileHandler.flushFrequency <1> 
com.sun.enterprise.server.logging.GFFileHandler.formatter <com.sun.enterprise.server.logging.ODLLogFormatter> 
com.sun.enterprise.server.logging.GFFileHandler.logtoConsole <false> 
com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles <0> 
com.sun.enterprise.server.logging.GFFileHandler.multiLineMode <true> 
com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours <0> 
com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes <2000000> 
com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange <false> 
com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes <0> 
com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging <false> 
handlerServices <com.sun.enterprise.server.logging.GFFileHandler,com.sun.enterprise.server.logging.SyslogHandler> 
handlers <java.util.logging.ConsoleHandler> 
java.util.logging.ConsoleHandler.formatter <com.sun.enterprise.server.logging.UniformLogFormatter> 
java.util.logging.FileHandler.count <1> 
java.util.logging.FileHandler.formatter <java.util.logging.XMLFormatter> 
java.util.logging.FileHandler.limit <50000> 
java.util.logging.FileHandler.pattern <%h/java%u.log> 
log4j.logger.org.hibernate.validator.util.Version <warn> 
org.springframework <WARNING> 
Command list-log-attributes executed successfully. 

Я попытался предложения, приведенные в this SO question, но это не сработало. Я в тупике. :(Я действительно не хочу, чтобы увидеть все эти информационные линии лесозаготовительных выводимые весеннем рамках

=== РЕДАКТИРОВАТЬ ===

Вот что в моих log4j.properties (скопированные из SO).:

# Define the root logger with appender file 
log4j.rootLogger = DEBUG, stdout 

# Define the file appender 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
# Set the name of the logs destination 
log4j.appender.stdout.target=System.out 

# Set the immediate flush to true (default) 
log4j.appender.stdout.ImmediateFlush=true 

# Set the threshold to debug mode 
log4j.appender.stdout.Threshold=debug 

# Set the append to false, overwrite 
log4j.appender.stdout.Append=false 

# Define the layout for appender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.conversionPattern=%d{yyyy-MM-dd}:%m%n 

log4j.logger.org.springframework=WARNING 

Здесь все места, где я скопировал файл:

$PROJECT_DIR/src/log4j.properties 
$PROJECT_DIR/src/main/resources/META-INF/log4j.properties 
$PROJECT_DIR/src/main/webapp/WEB-INF/log4j.properties 
$PROJECT_DIR/src/main/webapp/WEB-INF/classes/log4j.properties 
$PROJECT_DIR/target/$PROJECT-1.0/WEB-INF/log4j.properties 
$PROJECT_DIR/target/$PROJECT-1.0/WEB-INF/classes/log4j.properties 
$PROJECT_DIR/target/$PROJECT-1.0/WEB-INF/classes/META-INF/log4j.properties 
$PROJECT_DIR/target/classes/META-INF/log4j.properties 
/opt/payara41/glassfish/domains/domain1/config/log4j.properties 

Кроме того, я добавил log4j.logger.org.springframework=WARNING и org.springframework=WARNING к Configurations > server-config > Logger Settings > Module Log Levels I n пользовательский интерфейс Payara. Ничего не работает. В журнале сервера Payara все еще есть строки INFO для весеннего фреймворка.

+0

Только для ясности: файл, который вы редактируете, является файлом logging.properties, который является частью сервера? Если это так: Glassfish использует java.util.logging внутри, а Spring, похоже, использует log4j. Если вы хотите контролировать ведение журнала весны, я ожидаю, что вы добавите файл log4j.properties в ваше приложение и поместите туда необходимые фильтры. – Gimby

+0

Как уже упоминалось в моем вопросе, я уже пытаюсь добавить этот файл в свой каталог WEB-INF. Не работает. – nullstellensatz

+0

WEB-INF или WEB-INF/классы? Он должен находиться в пути к классам, поэтому он должен идти в WEB-INF/classes. – Gimby

ответ

0

Я пробовал все, что было предложено до сих пор, безрезультатно. Так что я закончил делать что-то довольно взломанное. Я написал свой собственный обработчик журнала и установил его в domain1/lib/ext:

package org.springsuppressor; 

import java.util.logging.ConsoleHandler; 
import java.util.logging.Level; 

public class MyHandler extends ConsoleHandler { 

    public MyHandler() { 
    super(); 
    setLevel(Level.WARNING); 
    } 
} 

Обработчик выше устанавливает уровень протоколирования для всех регистраторов в WARNING. Я мог бы подавлять сообщения только для весеннего фреймворка, но мне пока этого не нужно.