Как остановить спящий режим чрезмерной регистрации? - PullRequest
4 голосов
/ 06 апреля 2020

Мое приложение использует режим гибернации и печать логов. Я попытался установить логирование на уровень ошибки, как показано ниже. Однако, это не устанавливает журналирование гибернации на уровень ошибки. Здесь чего-то не хватает?

пом. xml:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.2-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.2-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jul</artifactId>
    <version>2.11.2</version>
</dependency>

log4j2. xml

    <?xml version="1.0" encoding="UTF-8"?>

<Configuration status="INFO">

    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout
                pattern="[%d{dd MMM yyyy HH:mm:ss}] [%-5p] [%t] [%C{1}:%M:%L] - %m%n" />
        </Console>
    </Appenders>

    <Loggers>
        <Logger name="com.myapp" level="error" additivity="false">
            <AppenderRef ref="CONSOLE" />
        </Logger>
        <Root level="info">
            <appender-ref ref="CONSOLE" />
        </Root>
        <Logger name="org.hibernate" level="error" additivity="false">
            <AppenderRef ref="CONSOLE" />
        </Logger>

    </Loggers>

</Configuration>

Используется спящий и весенний варианты:

<spring-framework.version>4.0.3.RELEASE</spring-framework.version>
        <hibernate.version>3.6.9.Final</hibernate.version> 

Записать его печать

19:05:16.733 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - HQL: SELECT g FROM myClass g
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - SQL: sql sample
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.hibernate.impl.SessionFactoryImpl - Checking named query: Underlyer.findAll
19:05:16.735 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - parse() - HQL: SELECT u FROM entity.class1 u
19:05:16.737 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.AST - --- HQL AST ---
 \-[QUERY] Node: 'query'
    \-[SELECT_FROM] Node: 'SELECT_FROM'
       +-[FROM] Node: 'FROM'
       |  \-[RANGE] Node: 'RANGE'
       |     +-[DOT] Node: '.'
       |     |  +-[DOT] Node: '.'
       |     |  |  +-[DOT] Node: '.'
       |     |  |  |  +-[DOT] Node: '.'
       |     |  |  |  |  +-[DOT] Node: '.'
       |     |  |  |  |  |  +-[DOT] Node: '.'

Ответы [ 5 ]

5 голосов
/ 11 апреля 2020

Кажется, что имена потоков указывают на то, что вы работаете в контейнере c weblogi. Вы уверены, что конфигурация регистрации используется вообще? (например, см. log4j2-not-working-in-weblogi c -12-2-1 ).

Кроме того, я также не вижу смысла в использовании аддитивности = "ложь", а затем повторять точно такие же дополнения. Почему вы не предпочитаете что-то более простое, как это?

<Loggers>
    <Root level="info">
        <appender-ref ref="CONSOLE" />
    </Root>
    <Logger name="com.myapp" level="error"/>
    <Logger name="org.hibernate" level="error"/>
</Loggers>
0 голосов
/ 16 апреля 2020

Установить свойства конфигурации гибернации:

hibernate.show_sql=false
0 голосов
/ 16 апреля 2020

То, что ваш регистратор неправильно выбирает конфигурацию файла, может быть по двум причинам.

  1. Вы не указали правильный путь к файлу log4j2. xml , так как ваш проект неправильно выбирает его, что обнаруживается в ваших журналах.
  2. В вашем log4j2. xml файле есть некоторая ошибка в ссылочном теге appender внутри тега root, изменить appender-ref до AppenderRef

<Root level="info">
     <appender-ref ref="CONSOLE" />
</Root>

до

<Root level="info">
      <AppenderRef ref="CONSOLE" />
</Root>

Вышеуказанные две указанные причины связаны с шаблоном ведения журнала, который вы используете в log4j2. xml, и фактические общие журналы полностью отличаются. Посмотрите на нужный вам макет шаблона из log4j2. xml

<PatternLayout pattern="[%d{dd MMM yyyy HH:mm:ss}] [%-5p] [%t] [%C{1}:%M:%L] - %m%n" />

Он должен печатать журналы как

[16 Apr 2020 19:05:16.733] [...] [...] [...:...:...] - .......

, где фактические журналы имеют разные шаблоны.

19:05:16.733 [...] ... ....... - .....

, как указано в разделе.

19:05:16.733 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - HQL: SELECT g FROM myClass g
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - SQL: sql sample
0 голосов
/ 15 апреля 2020

Попробуйте установить более разумный уровень ведения журнала. Установка уровня ведения журнала на info означает, что регистрируется только событие журнала на уровне info или выше (warn, error и fatal), то есть debug события ведения журнала игнорируются.

log4j.logger.org.hibernate=info

или в XML версии файла конфигурации log4j:

<logger name="org.hibernate">
  <level value="info"/> 
</logger>

См. Также руководство по log4j .

0 голосов
/ 14 апреля 2020

Является ли это приложением Spring, если вы можете скрыть SQL от печати с помощью опции файла свойств:

spring.jpa.show-sql=false

Если это не Spring, вы можете попробовать это (в приложении Sprint такая конфигурация журнала Hibernate работает):

<Logger name="org.hibernate.SQL" level="error"/>
<Logger name="org.hibernate.type" level="error"/>

ИЛИ любой уровень журнала вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...