Как переопределить конфигурацию log4j подключаемого модуля Maven? - PullRequest
5 голосов
/ 23 декабря 2010

Я использую плагин Cargo Maven для развертывания WAR на удаленном сервере, и у меня возникают проблемы.Я, вероятно, создам второй вопрос для этой проблемы, но этот вопрос о переопределении конфигурации log4j плагина Maven.Cargo использует клиентские библиотеки JBoss для отправки материалов на серверы JBoss (что я и пытаюсь сделать). Библиотека JBoss использует log4j.Cargo не устанавливает какой-либо слой отображения , о котором я знаю.

Так что, по сути, сообщения журнала появляются в зависимой библиотеке плагина Maven.Я попытался установить -Dlog4j.debug и получил эту информацию:

log4j: Trying to find [log4j.xml] using ClassRealm[plugin>org.codehaus.cargo:cargo-maven2-plugin:1.0.5, parent: ClassRealm[maven.api, parent: null]] class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader ClassRealm[plugin>org.codehaus.cargo:cargo-maven2-plugin:1.0.5, parent: ClassRealm[maven.api, parent: null]].
log4j: Using URL [jar:file:/C:/Users/username/.m2/repository/org/jboss/jbossts/jbossjts/4.13.1.Final/jbossjts-4.13.1.Final.jar!/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL jar:file:/C:/Users/username/.m2/repository/org/jboss/jbossts/jbossjts/4.13.1.Final/jbossjts-4.13.1.Final.jar!/log4j.properties
log4j: Could not find root logger information. Is this OK?
log4j: Parsing for [com.arjuna] with value=[INFO, default, stdout].
log4j: Level token is [INFO].
log4j: Category com.arjuna set to INFO
log4j: Parsing appender named "default".
log4j: Parsing layout options for "default".
log4j: Setting property [conversionPattern] to [%d [%t] %-5p %c - %m%n].
log4j: End of parsing for "default".
log4j: Setting property [maxBackupIndex] to [2].
log4j: Setting property [file] to [transaction.log].
log4j: Setting property [maxFileSize] to [500KB].
log4j: setFile called: transaction.log, true
log4j: setFile ended
log4j: Parsed "default" options.
log4j: Parsing appender named "stdout".
log4j: Parsing layout options for "stdout".
log4j: Setting property [conversionPattern] to [%d [%t] %-5p %c - %m%n].
log4j: End of parsing for "stdout".
log4j: Setting property [threshold] to [WARN].
log4j: Parsed "stdout" options.
log4j: Handling log4j.additivity.com.arjuna=[null]
log4j: Finished configuring.
log4j:WARN No appenders could be found for logger (org.jnp.interfaces.TimedSocketFactory).
log4j:WARN Please initialize the log4j system properly.

Затем я попытался установить -Dlog4j.configuration = mylog4j.properties, но получил это:

log4j: Trying to find [mylog4j.properties] using context classloader ClassRealm[plugin>org.codehaus.cargo:cargo-maven2-plugin:1.0.5, parent: ClassRealm[maven.api, parent: null]].
log4j: Trying to find [mylog4j.properties] using ClassRealm[plugin>org.codehaus.cargo:cargo-maven2-plugin:1.0.5, parent: ClassRealm[maven.api, parent: null]] class loader.
log4j: Trying to find [mylog4j.properties] using ClassLoader.getSystemResource().
log4j: Could not find resource: [mylog4j.properties].
log4j:WARN No appenders could be found for logger (org.jnp.interfaces.TimedSocketFactory).
log4j:WARN Please initialize the log4j system properly.

Может показаться, что файл конфигурации log4j должен находиться в пути к классу плагина Maven , но я не знаю, как включить туда случайные файлы, только зависимости.Я действительно хочу установить эту информацию так, чтобы я мог получать отладочную информацию из библиотек JBoss для решения моей проблемы.

1 Ответ

8 голосов
/ 23 августа 2011

С помощью log4j.configuration вы установите строку ресурса. Взгляните на log4j процесс инициализации по умолчанию и примеры.

Если вы используете синтаксис, подобный этому

-Dlog4j.configuration=mylog4j.properties

файл ожидается в пути к классам. Но вы также можете использовать такой синтаксис, как этот

-Dlog4j.configuration=file:/<path>/mylog4j.properties

для указания полного местоположения файла.

...