Статьи

Spring: настройка зависимостей протоколирования

В этом посте описывается, как настроить зависимости журналирования в Spring. Он основан на информации, доступной в посте Дэйва Сайера. Напоминание об основах ведения журналов Java доступно здесь . Пример кода доступен на GitHub в каталоге Spring-Logging-Dependencies.

Spring использует Jakarta Commons Logging API (JCL). К сожалению, многим людям не нравится его алгоритм обнаружения во время выполнения. Мы можем отключить его и использовать вместо него SLF4J с Logback. Для этого мы будем использовать вариант Spring MVC с аннотациями .

Вот модифицированный контроллер:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
public class MyController {
 
    private static final Logger LOG
        = LoggerFactory.getLogger(MyController.class);
 
    @RequestMapping(value = '/')
    public String home(Model model) {
 
        String s = 'Logging at: ' + System.currentTimeMillis();
        LOG.info(s);
 
        model.addAttribute('LogMsg', s);
 
        return 'index';
 
    }
 
}

Мы создаем регистратор SFL4J и регистрируем некоторую информацию с текущим временем в миллисекундах.

Maven-зависимости:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<properties>
    ...
    <spring.version>3.1.2.RELEASE</spring.version>
    <slf4j.version>1.7.1</slf4j.version>
    <logback.version>0.9.30</logback.version>
</properties>
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
    <type>jar</type>
</dependency>
 
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
    <scope>runtime</scope>
</dependency>
 
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j.version}</version>
    <type>jar</type>
</dependency>
 
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>${logback.version}</version>
</dependency>

После сборки можно начать пример с просмотра:
HTTP: // локальный: 9393 / весна-каротаж зависимости /. Будет отображаться следующее:

В журналах вы найдете записанный оператор:

Больше весенних постов здесь .

Ссылка: Настройка зависимостей ведения журнала весной от нашего партнера JCG Джерома Версринга из блога Технических заметок .