2010-01-21 2 views
2

Я хочу изменить формат журнала для журнала сервера Weblogic. Сейчас он генерирует журналы, используя свой формат по умолчанию - я хочу, чтобы иметь возможность указать свой собственный формат.Как изменить формат журнала Weblogic 10/11?

Например, он генерирует журналы, которые выглядят следующим образом:

####<Jan 21, 2010 3:24:24 PM EST> <Info> <Socket> <FS2LOANER-00981> <DPSCoreServer1> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1264105464314> <BEA-000436> <Allocating 2 reader threads.> 
####<Jan 21, 2010 3:24:24 PM EST> <Info> <Socket> <FS2LOANER-00981> <DPSCoreServer1> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1264105464314> <BEA-000446> <Native IO Enabled.> 

Я попытался изменить формат журнала, имея Weblogic использовать LOG4J в качестве системы регистрации и с его использовать мой файл log4j.properties, который определяет мои желаемые форматы журналов. Тем не менее, weblogic не забирает мои параметры файла log4j.property и продолжает входить в желаемый формат, независимо от того, что я пытаюсь.

Это очень похожий вопрос на следующий пост, но этот вопрос никогда не получил ответа (одобренный ответ касался того, как включить отладку log4j, что не помогло мне понять, почему веб-логика не собирает мой файл log4j.properties). Using log4j logging in weblogic 9/10

+0

Вы хотели бы надеяться, что с более чем 1564 видами, которые WebLogic выяснит, что это будет хорошей возможностью для их реализации. – BestPractices

ответ

1

Насколько мне известно, вы не можете (и нет, вы не хотите) собственный Log Message Format изменение WebLogic сервера (поддержка будет очень рад иметь необходимые данные в случае возникновения проблем).

Но вы можете настроить WebLogic на использование Log4j (см. How to Use Log4j with WebLogic Logging Services), и, когда Log4j включен, вы можете получить ссылку на org.apache.log4j.Logger, что сервер использует и прикрепляет ваш собственный appender.

Когда Log4j включен, вы получите ссылки на org.apache.log4j.Logger, что сервер использует из класса weblogic.logging.log4j.Log4jLoggingHelper .

С ссылкой на Log4j Logger вы можете присоединить к себе собственный пользовательский аккаунт получать события журнала сервера; для примера можно добавить приложение , которое отправляет события журнала сервера в Syslog или Windows Event Viewer. Кроме того, вы можете использовать ссылку Logger для запроса журналов журнала на Службы регистрации WebLogic; это требует, чтобы библиотеки Log4j были , доступными вашему развернутому приложению .

Но это не замена собственного журнала WebLogic.

2

Создать класс запуска домена следующим образом:

import org.apache.log4j.PatternLayout; 

import weblogic.logging.LoggerNotAvailableException; 
import weblogic.logging.log4j.Log4jLoggingHelper; 

public class LoggingConfigurator { 
    public static void main(String[] args) { 
     try { 
      System.out.println("Configuring Log4j pattern"); 
      Log4jLoggingHelper.getLog4jServerLogger().getAppender("WLLog4jRotatingFileAppender") 
        .setLayout(new PatternLayout("%d{ISO8601} %-5p [%c] - %m%n")); 
     } catch (LoggerNotAvailableException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Амнона

0

У меня нет никакого желания заменить регистратора WebLogic, но у меня есть очень сильное желание настроить формат журнала. Метод Amnon опубликовал работу очень хорошо (так что я не уверен, почему вы говорите, что не можете изменить формат); Я просто хотел бы получить дополнительные детали.

О единственном негативе, который я вижу с помощью метода, является то, что если у вас есть StdOut/StdErr, перенаправленный в подсистему ведения журнала, он отображается в журнале с пустым значением для символа преобразования% c; если я не изменю шаблон макета, то я вижу и вместо этого.

Это - это то, что я хотел увидеть исходную строку макета шаблона, чтобы я мог внести свои изменения и сохранить в файле журнала.

0

Публикации до сих пор не отвечали на исходный вопрос, поэтому WebLogic не выбирает нужный формат журнала, настроенный в файле log4j.properties.

Мне кажется, что вы используете мост регистрации журнала WL для перенаправления сообщений log4j приложения на службы ведения журнала WL-сервера? Если это предположение верно, от Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server, вам нужно будет передать аргумент в команде запуска WL-сервера, чтобы загрузить правильные конфигурации log4j,

-Djava.util.logging.config.file =/[PATH]/log4j.properties

Cleaner просто передайте этот вариант JVM при запуске WL, хотя вы также можете его реализовать так же, как и в предыдущем посте.

0

Weblogic не собирает ваши log4j.properties, потому что он не знает, что он есть.

Вам нужно перейти на путь к серверу и добавить путь к файлу свойств, сохранить изменения и перезагрузить сервер. Это должно сделать трюк.

Смежные вопросы