Логирование сервера приложений.
Contents
Логирование сервера приложений.#
Общий обзор#
Логирование в проекте осуществляется с использованием Logback. Конфигурация логирования задается в XML-файлах, расположенных в каталоге {{workspace}}/application/config/
.
Структура конфигурационных файлов#
{{workspace}}/
└── application/
└── config/
├── logback-LoggerContext.xml # Основной файл конфигурации системных логов
├── logback-LoggerContext-ext.xml # Проектные настройки системных логов
├── logback-LoggerContext-session.xml # Основной файл конфигурации логов сессии
├── logback-LoggerContext-session-ext.xml # Проектные настройки логов сессии
! Внимание!
Логирование в проекте настроено с учетом системных и сессионных логов.
Изменение основных файлов конфигурации запрещено, но пользователь может вносить свои изменения через файлыlogback-LoggerContext-ext.xml
иlogback-LoggerContext-session-ext.xml
.
Основные конфигурационные файлы#
logback-LoggerContext.xml
Основной файл конфигурации логирования.
Отвечает за запись системных логов.
Фиксирует сообщения начиная с уровня INFO и выше.
Изменение этого файла не допускается.
logback-LoggerContext-session.xml
Конфигурация логирования текущей сессии.
Фиксирует сообщения начиная с уровня WARN и выше.
Изменение этого файла не допускается.
Расширяемые файлы конфигурации#
Если требуется изменить настройки логирования, пользователь может использовать специальные файлы расширений:
logback-LoggerContext-ext.xml
Подключается к
logback-LoggerContext.xml
.Позволяет добавить или изменить настройки логирования системных событий.
logback-LoggerContext-session-ext.xml
Подключается к
logback-LoggerContext-session.xml
.Позволяет добавить или изменить настройки логирования текущей сессии.
Пример добавления кастомного логгера#
Чтобы добавить кастомный логгер в файл logback-LoggerContext-ext.xml
, можно использовать следующий шаблон:
<included>
<appender name="FILEOUT-EXT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/opt/global/globalserver/logs/global3.%d{yyyy-MM-dd_HH}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILEOUT-EXT"/>
</root>
</included>
Конфигурация логов для HaProxy#
Конфигурация находится в /etc/haproxy/haproxy.cfg
global
log /dev/log local0 debug # debug — самый подробный уровень
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
defaults
option tcplog
option dontlognull
option log-health-checks # Логирует результат health checks
option abortonclose # Логирует обрыв соединений
option dontlog-normal
option log-separate-errors
log global
mode http
#option httpchk
option httplog
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http-frontend
bind *:8080
default_backend http-backend
backend http-backend
server s1 192.168.200.16:8080 check
Команда для просмотра логов:
journalctl -u haproxy -f
Пример логов
0/0 «GET /login/ing/glow.ong HTTP/1.1“ 09:32:53 hаproxy hаprоxy [44489]: 192.168.200.1:54520 [04/Aug/2025:09:32:38.821] http-frontend http-backend/s1 0/0/1212/834/14706 «GET /view/fonts/inter/inter-regular-variable.ttf HTTP/1.1» 200 121659 - - CD– 6/6/2 200 135559 - - CD– 6/6/
cD - Клиент не отправил и не подтвердил никаких данных, и в конечном итоге время ожидания клиента истекло.
SC - Сервер явно отклонил TCP-соединение.
PC - Прокси-сервер отказался устанавливать соединение с сервером, поскольку при попытке подключения было достигнуто ограничение на сокет процесса.