Пример интеграции Wicket Log4j

Пример интеграции Wicket + Log4j

wicket log4j

В этом руководстве мы покажем вам, как интегрировать каркас log4j с веб-приложением Wicket. Фреймворк Wicket использует API SLF4j, чтобы убедиться, что Log4j декларирует зависимостьslf4j-log4j12.

Проверьте среду проекта:

  1. SLF4j 1.7.7

  2. Log4j 1.2.17

  3. Калитка 6.16.0

  4. Maven 3

  5. Tomcat 6

  6. Затмение Кеплер 4.3

1. Каталог проектов

Просмотрите окончательную структуру проекта.

wicket-log4j-directory

2. Зависимости проекта

Объявляет зависимости как Wicket, так и slf4j-log4j12.

pom.xml

    
        6.16.0
        1.7.7
    

    

        
            org.apache.wicket
            wicket-core
            ${wicket.version}
        

        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        

    

Рисунок: pom.xml в редакторе pom Eclipse, иерархия зависимостей

wicket-log4j-dependency

3. Log4j свойства

Как обычно, создайте файл log4j.properties и поместите его в папку ресурсов. Обратитесь к шагу № 1.

log4j.properties

# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/mywicketapp.log
log4j.appender.file.MaxFileSize=5KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

4. Регистрация сообщений

Пример использования log4j для регистрации отладки и сообщений об ошибках.

Hello.java

package com.example.hello;

import org.apache.log4j.Logger;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;

public class Hello extends WebPage {

    // Get logger
    private static final Logger logger = Logger.getLogger(Hello.class);

    private static final long serialVersionUID = 1L;

    public Hello() {

        // logs debug
        if (logger.isDebugEnabled()) {
            logger.debug("Hello()");
        }

        // logs exception
        logger.error("Error message", new Exception("ABC"));

        add(new Label("message", "Wicket + Log4j"));

    }
}

5. Demo

Запустите веб-приложение Wicket, например:http://localhost:8080/Log4jAndWicket/. И консоль Wicket и приложения будут отображаться на консоли, а также выводиться в файл.

wicket-log4j

Рисунок 5.1: Консоль Eclipse

wicket-log4j-file

Figure 5.2 : D:pache-tomcat-6.0.37\logs\mywicketapp.log

Скачать исходный код

Скачать -WicketAndLog4j.zip (10 КБ)