Log4j2 в среде Unix

1

Я создал проект, в котором я создаю журналы с log4j2.xml. Мой файл конфигурации отлично работает, когда я запускаю его в затмении моей системы Windows. Вот файл конфигурации, который я использовал для создания файлов журнала.

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Configuration status="WARN">
    <Properties>
        <Property name="log-path">/home/apps/ora_fin/IGL75D/Disco/splunk/log</Property>
    </Properties>
    <Appenders>
        <RollingFile fileName="${log-path}/SplunkOADC.log" filePattern="${log-path}/SplunkOADC-%d{yyyy-MM-dd}.log" name="info-log">
        <Filters>
            <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
            <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
            <ThresholdFilter level="fatal" onMatch="DENY" onMismatch="NEUTRAL"/>
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Filters>
            <PatternLayout>
                <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n
                </pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>

        </RollingFile>

        <RollingFile fileName="${log-path}/SplunkOADC-trace.log" filePattern="${log-path}/SplunkOADC-trace-%d{yyyy-MM-dd}.log" name="trace-log">

            <Filters>
            <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>

            <ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
            <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
             <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
             <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
             <ThresholdFilter level="FATAL" onMatch="ACCEPT" onMismatch="DENY"/>
        </Filters>

            <PatternLayout>
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
                </pattern>
            </PatternLayout>
            <Policies>

                    <SizeBasedTriggeringPolicy size="1 MB"/>
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger level="all" name="com.aviva.uk.gi.NUProcessOSBReportDataParserPkg">
            <AppenderRef ref="info-log"/>
            <AppenderRef ref="trace-log"/>
        </Logger>
        <Root>
        </Root>
    </Loggers>
</Configuration> 

Этот файл конфигурации, который я поместил в папку src в моем проекте, и вызывается без каких-либо проблем. Однако мне нужно развернуть приложение в среде Unix, где я должен поместить файл конфигурации в среду unix, чтобы его подхватили класс java для регистрации?

Благодарю!

  • 0
    Есть веб-страница с ответом: logging.apache.org/log4j/2.x/manual/configuration.html
  • 0
    Да, я прочитал конфигурацию в документации. Что мне нужно знать, так это то, что если я могу загрузить файл конфигурации в свой класс Java с помощью XMLConfiguration?
Теги:
log4j2
classpath

2 ответа

1

Самое простое - просто добавить конфигурационный файл в classpath вашего приложения.

Для веб-приложения это означает, что он помещается в WEB-INF/classes/.

В качестве альтернативы вы можете использовать системное свойство, предложенное в другом ответе.

  • 0
    Но у меня есть Java-приложение, которое принимает сообщения от слушателя MDB. Я не могу развернуть его как веб-приложение. И в настоящее время я использую свой конфигурационный файл, сохраняя его в пути к классам, т.е. src / log4j2.xml, и он подбирается. Но когда я развертываю приложение на сервере weblogic, оно перестает работать
1

Как насчет использования аргумента jvm всегда

-Dlog4j.configuration={path to file}

Это должно работать независимо от среды, в которой вы развертываете.

  • 0
    Спасибо за ответ, где я должен добавить этот аргумент?
  • 0
    Это аргумент JVM. docs.oracle.com/cd/E22289_01/html/821-1274/...
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню