Вопрос по jboss6.x, jboss, log4j – Используйте мой log4j под jboss 6

7

Я хочу развернуть свое веб-приложение на JBOSS6. Само приложение работает, но регистрация не ведется. Я использую log4j и добавил в мою войну jboss-deploy-structure.xml. Содержание

<jboss-deployment-structure>
<deployment>
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.jboss.logging" />
    </exclusions>
</deployment>

В моем log4j.xml у меня есть

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "dtd/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="LogAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="C:\\logs\\web.log"/>
    <param name="MaxFileSize" value="10000KB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%x %-5p [%d{yyyyMMdd HH:mm:ss}] - %c:%L - %m%n"/>
    </layout>
</appender>

<logger name="be.sofico.web">
    <level value="debug" />
    <appender-ref ref="LogAppender" />
</logger>

Все это прекрасно работает на tomcat и websphere (когда я в последний раз устанавливаю родителя загрузки классов)

Как мне заставить его работать на JBOSS 6?

Ваш Ответ

3   ответа
-2

что он не загружает ваш log4j.xml. Что-то не так с расположением файла xml или проблема с загрузчиком классов, который находит этот файл log4j.xml.

как видите, я решил проблему roel
12

поместите jboss-deploy-structure.xml в web \ META-INF со следующим в файле

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.apache.commons.logging" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>

И добавьте это в автозагрузку сервера: -Dorg.jboss.as.logging.per-deploy = false

Спасибо, Рол, за ответ, я запускал свой сервер JBoss из консоли администрирования JBoss и добавил системное свойство-Dorg.jboss.as.logging.per-deployment и установите его в ложь. теперь это сработало
В качестве альтернативы вы можете добавить системные свойства в свой XML-файл конфигурации: & lt; system-properties & gt; & lt; имя свойства = & quot; org.jboss.as.logging.per-deploy & quot; значение = & Quot; ложно & Quot; / & GT; & Lt; / система-свойства & GT;
Standalone.conf, вероятно, является более подходящим местом для внесения таких изменений:stackoverflow.com/questions/12670415/…
где мне нужно добавить-Dorg.jboss.as.logging.per-deployment=false? что вы подразумеваете под запуском сервера? какой файл мне нужно изменить в JBoss?
Я имею в виду сценарий, который вы используете для запуска сервера. В \ bin \ standalone.bat вы найдете что-то вроде rem Setup, специфичные для JBoss свойства, установленные JAVA_OPTS = -Dprogram.name =% PROGNAME%% JAVA_OPTS% Вы можете добавить его туда. roel
0

1) Я установил имя log4j для использования, как это

-Dlog4j.configuration=fox-log4j.xml

этот должен быть вCLASSPATH

2) Я вызываю менеджер логов явно, иначе jboss log4j не будет работать

это дает в моем run.conf:

#parameter used by the JVM and call later in the log4j.xml
LOG_FOLDER=$DIRNAME/../server/default/log
#jvm options
JAVA_OPTS="-Xms256m -Xmx4096m -XX:MaxPermSize=1024m -Dlog4j.configuration=fox-log4j.xml \
-Dfile.encoding=UTF-8 -Dfile.io.encoding=UTF-8 -DjavaEncoding=UTF-8 -Djboss.platform.mbeanserver \
-Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl \
-Djava.util.logging.manager=org.jboss.logmanager.LogManager \
-Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl \
-DLOG_FOLDER=$LOG_FOLDER"

теперь кусок моего log4j:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

 <appender name="FOX_LOG" class="org.apache.log4j.RollingFileAppender">
  <param name="Threshold" value="DEBUG"/>
  <param name="Append" value="true"/>
  <param name="MaxFileSize" value="25MB"/>
  <param name="MaxBackupIndex" value="5"/>
  <param name="File" value="${LOG_FOLDER}/fox.log"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d{ISO8601} %-15x %t %-5p %-50.50c{1} - %m%n"/>
  </layout>
 </appender>

 <category name="com.mycompany" additivity="true">
    <priority value="DEBUG"/>
    <appender-ref ref="FOX_LOG"/>
 </category>

  <root>
    <priority value="INFO"/>
    <appender-ref ref="FILE"/>
 </root>
</log4j:configuration>

надеюсь, это поможет. С уважением

Привет, я хочу использовать org.apache.log4j, а не log4j с jboss. (Я попробовал ваше решение, но оно записывает все на server.log вместо файла, который я настроил) roel
Сервис регистрации JBOSS нелепо сложен в использовании. Все, что нам нужно, - это простой файл с некоторыми журналами, а не файл server.log, а файл, который мы выбираем, его не должно быть так сложно достать!

Похожие вопросы