feat: улучшена классификация логов PostgreSQL

- Добавлена поддержка LOG: логов PostgreSQL как INFO уровень (зеленый цвет)
- Добавлена поддержка FATAL: логов PostgreSQL как ERROR уровень (красный цвет)
- Исправлена классификация логов в формате [номер] LOG: и [номер] FATAL:
- Убраны отладочные console.log сообщения
- Обновлены Dockerfile и docker-compose.yml
- Перемещен start.sh в папку app/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Sergey Antropoff 2025-09-01 14:22:25 +03:00
parent c40b2b312e
commit d697797577
4 changed files with 43 additions and 1 deletions

View File

@ -17,7 +17,7 @@ RUN useradd -m appuser && \
RUN mkdir -p /app/snapshots && chown -R appuser:appuser /app
# Скрипт для запуска с поддержкой DEBUG_MODE
COPY start.sh /app/start.sh
#COPY start.sh /app/start.sh
RUN chmod 755 /app/start.sh
EXPOSE 9001

View File

@ -399,6 +399,21 @@ function classify(line){
return 'err';
}
// FATAL - ищем точное совпадение уровня логирования (раскрашиваем как ERROR)
if (/\s- FATAL -|\s\[fatal\]|level=fatal/.test(l)) {
return 'err';
}
// PostgreSQL FATAL - специальная проверка для FATAL логов PostgreSQL
if (/\[\d+\]\s+FATAL:/i.test(l)) {
return 'err';
}
// Простая проверка для любых строк содержащих "FATAL:"
if (l.includes('fatal:')) {
return 'err';
}
// WARNING - ищем точное совпадение уровня логирования
if (/\s- WARNING -|\s\[warn\]|level=warn/.test(l)) {
return 'warn';
@ -409,11 +424,37 @@ function classify(line){
return 'ok';
}
// LOG - ищем точное совпадение уровня логирования (раскрашиваем как INFO)
if (/\s- LOG -|\s\[log\]|level=log|^log:/i.test(l)) {
return 'ok';
}
// PostgreSQL LOG - специальная проверка для логов PostgreSQL
if (/\[\d+\]\s+LOG:/i.test(l)) {
return 'ok';
}
// Простая проверка для любых строк содержащих "LOG:"
if (l.includes('log:')) {
return 'ok';
}
// Дополнительные проверки для других форматов (только если не найдены точные совпадения)
if (/\bdebug\b/i.test(l)) return 'dbg';
if (/\berror\b/i.test(l)) return 'err';
if (/\bfatal\b/i.test(l)) {
return 'err'; // FATAL также раскрашиваем как ERROR
}
if (/\bwarning\b/i.test(l)) return 'warn';
if (/\binfo\b/i.test(l)) return 'ok';
if (/\blog\b/i.test(l)) {
return 'ok'; // LOG также раскрашиваем как INFO
}
// Отладка для неклассифицированных логов
if (l.includes('log:') || l.includes('fatal:')) {
console.log('Unclassified LOG/FATAL line:', line);
}
return 'other';
}

View File

@ -9,6 +9,7 @@ services:
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./snapshots:/app/snapshots
- ./app:/app
restart: unless-stopped
user: 0:0
networks: