Как использовать Регистраторы SLF4J в JSP

Вот опция, которую я придумал, она может помочь:

public static class Container<E> {
    private Class<E> clazz;

    public Container(Class<E> clazz) {
        this.clazz = clazz;
    }

    public E createContents() throws Exception {
        return clazz.newInstance();
    }
}

РЕДАКТИРОВАНИЕ: Кроме того, можно использовать этого конструктора (но это требует экземпляра E):

@SuppressWarnings("unchecked")
public Container(E instance) {
    this.clazz = (Class<E>) instance.getClass();
}
14
задан Lóránt Pintér 11 August 2009 в 07:00
поделиться

3 ответа

Взгляните на slf4j-taglib .

9
ответ дан 1 December 2019 в 14:33
поделиться
public enum MyLoggerFactory {

    INSTANCE;

    @SuppressWarnings("unchecked")
    private final Map<Class, Logger> loggers = new HashMap<Class, Logger>();

    @SuppressWarnings("unchecked")
    public Logger getLogger(Class clazz) {
        if (loggers.get(clazz) == null) {
            loggers.put(clazz, LoggerFactory.getLogger(clazz));
        }
        return loggers.get(clazz);
    }
}

Тогда ваша страница JSP может выглядеть так:

<%
    MyLoggerFactory.INSTANCE.getLogger(getClass()).info("Hello Logging!");
%>
0
ответ дан 1 December 2019 в 14:33
поделиться

Вы можете попробовать (обратите внимание на "!")

<%! org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger("JSPname"); %>

Затем замените свой System.out на

<% log.info("Hello Logging!"); %>

. Комментарий Бориса действительно следует принять во внимание, JSP не должны нуждаться в регистрации в общем . Я бы использовал эту технику (или что-то подобное) только для замены существующего журнала, который необходимо сохранить.

5
ответ дан 1 December 2019 в 14:33
поделиться
Другие вопросы по тегам:

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