HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Слово<strong>лог</strong>(от англ.<em>log</em>- журнал, запись) в информатике означает<strong>журнал событий</strong>, куда программы, операционные системы и сервисы записывают информацию о своей работе.<strong>Лог-файл</strong>- это обычный текстовый файл, в который последовательно сохраняются записи (логи) о действиях, ошибках и событиях.</p>
1 <p>Слово<strong>лог</strong>(от англ.<em>log</em>- журнал, запись) в информатике означает<strong>журнал событий</strong>, куда программы, операционные системы и сервисы записывают информацию о своей работе.<strong>Лог-файл</strong>- это обычный текстовый файл, в который последовательно сохраняются записи (логи) о действиях, ошибках и событиях.</p>
2 <h2>Логирование: что это и зачем</h2>
2 <h2>Логирование: что это и зачем</h2>
3 <p><strong>Логирование</strong>- это процесс<strong>записи событий, ошибок и других данных</strong>во время работы программы или системы. Оно помогает разработчикам, администраторам и аналитикам<strong>понимать, что происходит внутри системы</strong>.</p>
3 <p><strong>Логирование</strong>- это процесс<strong>записи событий, ошибок и других данных</strong>во время работы программы или системы. Оно помогает разработчикам, администраторам и аналитикам<strong>понимать, что происходит внутри системы</strong>.</p>
4 <p>Основные цели логирования:</p>
4 <p>Основные цели логирования:</p>
5 <ol><li><p>Диагностика - поиск ошибок, сбоев. Помогает выявить причины неполадок и определить, где именно возникла проблема в системе.</p>
5 <ol><li><p>Диагностика - поиск ошибок, сбоев. Помогает выявить причины неполадок и определить, где именно возникла проблема в системе.</p>
6 </li>
6 </li>
7 <li><p>Мониторинг - наблюдение за состоянием сервисов. Позволяет отслеживать производительность, нагрузку, доступность приложений в реальном времени.</p>
7 <li><p>Мониторинг - наблюдение за состоянием сервисов. Позволяет отслеживать производительность, нагрузку, доступность приложений в реальном времени.</p>
8 </li>
8 </li>
9 <li><p>Безопасность - фиксация действий пользователей, подозрительных событий. Логи используются для расследования инцидентов, предотвращения несанкционированного доступа.</p>
9 <li><p>Безопасность - фиксация действий пользователей, подозрительных событий. Логи используются для расследования инцидентов, предотвращения несанкционированного доступа.</p>
10 </li>
10 </li>
11 <li><p>Аудит - контроль изменений и операций. Позволяет восстановить картину действий: кто, когда и что изменил в системе.</p>
11 <li><p>Аудит - контроль изменений и операций. Позволяет восстановить картину действий: кто, когда и что изменил в системе.</p>
12 </li>
12 </li>
13 <li><p>Отладка - анализ поведения приложения в реальных условиях. Используется разработчиками для понимания логики работы программы и устранения багов.</p>
13 <li><p>Отладка - анализ поведения приложения в реальных условиях. Используется разработчиками для понимания логики работы программы и устранения багов.</p>
14 </li>
14 </li>
15 </ol><h3>Уровни логирования</h3>
15 </ol><h3>Уровни логирования</h3>
16 <p>Почти все системы используют стандартные<strong>уровни важности (severity levels)</strong>:</p>
16 <p>Почти все системы используют стандартные<strong>уровни важности (severity levels)</strong>:</p>
17 <ul><li><p>DEBUG - подробная отладочная информация.</p>
17 <ul><li><p>DEBUG - подробная отладочная информация.</p>
18 </li>
18 </li>
19 <li><p>INFO - штатные операции.</p>
19 <li><p>INFO - штатные операции.</p>
20 </li>
20 </li>
21 <li><p>WARNING - потенциальная проблема.</p>
21 <li><p>WARNING - потенциальная проблема.</p>
22 </li>
22 </li>
23 <li><p>ERROR - ошибка, но программа продолжает работать.</p>
23 <li><p>ERROR - ошибка, но программа продолжает работать.</p>
24 </li>
24 </li>
25 <li><p>CRITICAL / FATAL - сбой, приводящий к остановке.</p>
25 <li><p>CRITICAL / FATAL - сбой, приводящий к остановке.</p>
26 </li>
26 </li>
27 </ul><p>Пример настройки в Python:</p>
27 </ul><p>Пример настройки в Python:</p>
28 <h2>Где встречаются логи</h2>
28 <h2>Где встречаются логи</h2>
29 <p>Логи существуют<strong>во всех уровнях IT-инфраструктуры</strong>:</p>
29 <p>Логи существуют<strong>во всех уровнях IT-инфраструктуры</strong>:</p>
30 <h2>Формат и расшифровка</h2>
30 <h2>Формат и расшифровка</h2>
31 <h3>Common Log Format (CLF)</h3>
31 <h3>Common Log Format (CLF)</h3>
32 <p>Используется в веб-серверах (Apache, Nginx):</p>
32 <p>Используется в веб-серверах (Apache, Nginx):</p>
33 <p>Расшифровка:</p>
33 <p>Расшифровка:</p>
34 <h3>Syslog (RFC 3164 / RFC 5424)</h3>
34 <h3>Syslog (RFC 3164 / RFC 5424)</h3>
35 <p>Универсальный формат системных журналов в Linux, сетевых устройствах.</p>
35 <p>Универсальный формат системных журналов в Linux, сетевых устройствах.</p>
36 <p>Пример:</p>
36 <p>Пример:</p>
37 <p>Поля:</p>
37 <p>Поля:</p>
38 <ul><li><p>&lt;34&gt; - приоритет (facility + severity);</p>
38 <ul><li><p>&lt;34&gt; - приоритет (facility + severity);</p>
39 </li>
39 </li>
40 <li><p>1 - версия;</p>
40 <li><p>1 - версия;</p>
41 </li>
41 </li>
42 <li><p>server1 - имя хоста;</p>
42 <li><p>server1 - имя хоста;</p>
43 </li>
43 </li>
44 <li><p>app[1234] - приложение и PID;</p>
44 <li><p>app[1234] - приложение и PID;</p>
45 </li>
45 </li>
46 <li><p>далее - сообщение.</p>
46 <li><p>далее - сообщение.</p>
47 </li>
47 </li>
48 </ul><h3>JSON-логи</h3>
48 </ul><h3>JSON-логи</h3>
49 <p>Современные приложения часто пишут логи в<strong>JSON</strong>:</p>
49 <p>Современные приложения часто пишут логи в<strong>JSON</strong>:</p>
50 <p>Преимущества:</p>
50 <p>Преимущества:</p>
51 <ul><li><p>удобен для машинного анализа (парсинг, фильтрация);</p>
51 <ul><li><p>удобен для машинного анализа (парсинг, фильтрация);</p>
52 </li>
52 </li>
53 <li><p>легко интегрируется в системы мониторинга;</p>
53 <li><p>легко интегрируется в системы мониторинга;</p>
54 </li>
54 </li>
55 <li><p>можно добавлять произвольные поля.</p>
55 <li><p>можно добавлять произвольные поля.</p>
56 </li>
56 </li>
57 </ul><h2>Расширение .log и log.txt</h2>
57 </ul><h2>Расширение .log и log.txt</h2>
58 <p>Файл с расширением<strong>.log</strong>- это<strong>обычный текстовый файл</strong>, просто с соглашением об именовании. Его можно открыть любым редактором, как .txt.</p>
58 <p>Файл с расширением<strong>.log</strong>- это<strong>обычный текстовый файл</strong>, просто с соглашением об именовании. Его можно открыть любым редактором, как .txt.</p>
59 <p>Разница лишь в назначении:</p>
59 <p>Разница лишь в назначении:</p>
60 <ul><li><p>.txt - произвольный текст;</p>
60 <ul><li><p>.txt - произвольный текст;</p>
61 </li>
61 </li>
62 <li><p>.log - структурированный журнал, часто с метками времени, уровнем важности.</p>
62 <li><p>.log - структурированный журнал, часто с метками времени, уровнем важности.</p>
63 </li>
63 </li>
64 </ul><p>Пример: system.log, access.log, error.log, app.log, log.txt</p>
64 </ul><p>Пример: system.log, access.log, error.log, app.log, log.txt</p>
65 <h2>Как открыть и читать логи</h2>
65 <h2>Как открыть и читать логи</h2>
66 <h3>Редакторы</h3>
66 <h3>Редакторы</h3>
67 <ul><li><p><strong>Блокнот (Notepad)</strong>- самый простой способ.</p>
67 <ul><li><p><strong>Блокнот (Notepad)</strong>- самый простой способ.</p>
68 </li>
68 </li>
69 <li><p><strong>Notepad++</strong>,<strong>VS Code</strong>,<strong>Sublime Text</strong>- поддерживают подсветку, поиск, фильтры.</p>
69 <li><p><strong>Notepad++</strong>,<strong>VS Code</strong>,<strong>Sublime Text</strong>- поддерживают подсветку, поиск, фильтры.</p>
70 </li>
70 </li>
71 </ul><h3>Консоль (Linux/macOS)</h3>
71 </ul><h3>Консоль (Linux/macOS)</h3>
72 <ul><li><p>cat file.log - вывести содержимое;</p>
72 <ul><li><p>cat file.log - вывести содержимое;</p>
73 </li>
73 </li>
74 <li><p>less file.log - постраничный просмотр;</p>
74 <li><p>less file.log - постраничный просмотр;</p>
75 </li>
75 </li>
76 <li><p>tail -f file.log - следить за новыми записями в реальном времени;</p>
76 <li><p>tail -f file.log - следить за новыми записями в реальном времени;</p>
77 </li>
77 </li>
78 <li><p>grep "ERROR" file.log - поиск ошибок;</p>
78 <li><p>grep "ERROR" file.log - поиск ошибок;</p>
79 </li>
79 </li>
80 <li><p>awk '{print $4, $6}' file.log - выборка нужных колонок;</p>
80 <li><p>awk '{print $4, $6}' file.log - выборка нужных колонок;</p>
81 </li>
81 </li>
82 <li><p>zgrep - поиск по сжатым логам.</p>
82 <li><p>zgrep - поиск по сжатым логам.</p>
83 </li>
83 </li>
84 </ul><h3>PowerShell (Windows)</h3>
84 </ul><h3>PowerShell (Windows)</h3>
85 <h3>Просмотрщики и анализаторы</h3>
85 <h3>Просмотрщики и анализаторы</h3>
86 <ul><li><p><strong>Windows Event Viewer</strong>- системные логи Windows.</p>
86 <ul><li><p><strong>Windows Event Viewer</strong>- системные логи Windows.</p>
87 </li>
87 </li>
88 <li><p><strong>journalctl</strong>- просмотр systemd-журналов.</p>
88 <li><p><strong>journalctl</strong>- просмотр systemd-журналов.</p>
89 </li>
89 </li>
90 <li><p><strong>WebLog Expert</strong>,<strong>Splunk</strong>,<strong>Kibana</strong>,<strong>Graylog</strong>,<strong>Datadog</strong>- продвинутые инструменты анализа.</p>
90 <li><p><strong>WebLog Expert</strong>,<strong>Splunk</strong>,<strong>Kibana</strong>,<strong>Graylog</strong>,<strong>Datadog</strong>- продвинутые инструменты анализа.</p>
91 </li>
91 </li>
92 </ul><h2>Работа с логами на практике</h2>
92 </ul><h2>Работа с логами на практике</h2>
93 <p>Чтобы быстро найти нужное событие, важно уметь фильтровать и интерпретировать данные.</p>
93 <p>Чтобы быстро найти нужное событие, важно уметь фильтровать и интерпретировать данные.</p>
94 <p><strong>Основные приемы:</strong></p>
94 <p><strong>Основные приемы:</strong></p>
95 <ul><li><p>фильтрация по дате (grep "2025-10-28");</p>
95 <ul><li><p>фильтрация по дате (grep "2025-10-28");</p>
96 </li>
96 </li>
97 <li><p>по уровню (grep "ERROR");</p>
97 <li><p>по уровню (grep "ERROR");</p>
98 </li>
98 </li>
99 <li><p>по сервису (grep "nginx");</p>
99 <li><p>по сервису (grep "nginx");</p>
100 </li>
100 </li>
101 <li><p>объединение (grep -E "ERROR|CRITICAL");</p>
101 <li><p>объединение (grep -E "ERROR|CRITICAL");</p>
102 </li>
102 </li>
103 <li><p>анализ временных меток для поиска цепочек событий.</p>
103 <li><p>анализ временных меток для поиска цепочек событий.</p>
104 </li>
104 </li>
105 </ul><h3>Пошаговый чек-лист</h3>
105 </ul><h3>Пошаговый чек-лист</h3>
106 <ol><li><p>Определите, какой компонент вас интересует (сервер, приложение, сеть).</p>
106 <ol><li><p>Определите, какой компонент вас интересует (сервер, приложение, сеть).</p>
107 </li>
107 </li>
108 <li><p>Найдите соответствующий лог-файл.</p>
108 <li><p>Найдите соответствующий лог-файл.</p>
109 </li>
109 </li>
110 <li><p>Смотрите метки времени - когда произошел сбой.</p>
110 <li><p>Смотрите метки времени - когда произошел сбой.</p>
111 </li>
111 </li>
112 <li><p>Фильтруйте ошибки (ERROR, FATAL).</p>
112 <li><p>Фильтруйте ошибки (ERROR, FATAL).</p>
113 </li>
113 </li>
114 <li><p>Смотрите контекст: что было за 10-20 строк до ошибки.</p>
114 <li><p>Смотрите контекст: что было за 10-20 строк до ошибки.</p>
115 </li>
115 </li>
116 <li><p>Сопоставьте несколько логов - например, nginx + backend.</p>
116 <li><p>Сопоставьте несколько логов - например, nginx + backend.</p>
117 </li>
117 </li>
118 <li><p>Сделайте вывод и проверьте гипотезу.</p>
118 <li><p>Сделайте вывод и проверьте гипотезу.</p>
119 </li>
119 </li>
120 </ol><h2>Примеры логов</h2>
120 </ol><h2>Примеры логов</h2>
121 <h3>Доступа (Nginx)</h3>
121 <h3>Доступа (Nginx)</h3>
122 <h3>Ошибок</h3>
122 <h3>Ошибок</h3>
123 <h3>JSON-лог приложения</h3>
123 <h3>JSON-лог приложения</h3>
124 <h3>Syslog</h3>
124 <h3>Syslog</h3>
125 <h2>"Снять", "сохранить" и "отправить" лог</h2>
125 <h2>"Снять", "сохранить" и "отправить" лог</h2>
126 <h3>Снять лог</h3>
126 <h3>Снять лог</h3>
127 <p>Означает<strong>собрать журнал событий</strong>.</p>
127 <p>Означает<strong>собрать журнал событий</strong>.</p>
128 <ul><li><p>В Linux: journalctl &gt; logs.txt</p>
128 <ul><li><p>В Linux: journalctl &gt; logs.txt</p>
129 </li>
129 </li>
130 <li><p>В Windows: экспорт через Event Viewer.</p>
130 <li><p>В Windows: экспорт через Event Viewer.</p>
131 </li>
131 </li>
132 <li><p>В мобильных приложениях: “отправить отчёт об ошибке”.</p>
132 <li><p>В мобильных приложениях: “отправить отчёт об ошибке”.</p>
133 </li>
133 </li>
134 </ul><h3>Сохранить лог</h3>
134 </ul><h3>Сохранить лог</h3>
135 <p>Обычно речь о<strong>ротации и архивировании</strong>логов. Инструменты:</p>
135 <p>Обычно речь о<strong>ротации и архивировании</strong>логов. Инструменты:</p>
136 <ul><li><p>logrotate (Linux);</p>
136 <ul><li><p>logrotate (Linux);</p>
137 </li>
137 </li>
138 <li><p>системные политики хранения (retention policies);</p>
138 <li><p>системные политики хранения (retention policies);</p>
139 </li>
139 </li>
140 <li><p>архивирование по размеру или дате.</p>
140 <li><p>архивирование по размеру или дате.</p>
141 </li>
141 </li>
142 </ul><h3>Отправить лог</h3>
142 </ul><h3>Отправить лог</h3>
143 <p>Передача файла администратору или в службу поддержки. Важно:</p>
143 <p>Передача файла администратору или в службу поддержки. Важно:</p>
144 <ul><li><p>не отправлять<strong>персональные данные</strong>(PII), пароли, токены;</p>
144 <ul><li><p>не отправлять<strong>персональные данные</strong>(PII), пароли, токены;</p>
145 </li>
145 </li>
146 <li><p>при необходимости - маскировать (user_id: ****).</p>
146 <li><p>при необходимости - маскировать (user_id: ****).</p>
147 </li>
147 </li>
148 </ul><h2>Настройка и лучшие практики</h2>
148 </ul><h2>Настройка и лучшие практики</h2>
149 <ol><li><p><strong>Структурированное логирование</strong>- JSON или key=value формат.</p>
149 <ol><li><p><strong>Структурированное логирование</strong>- JSON или key=value формат.</p>
150 </li>
150 </li>
151 <li><p><strong>Метки, correlation IDs</strong>- связывают события разных систем.</p>
151 <li><p><strong>Метки, correlation IDs</strong>- связывают события разных систем.</p>
152 </li>
152 </li>
153 <li><p><strong>Семантика уровней</strong>- использовать уровни строго по назначению.</p>
153 <li><p><strong>Семантика уровней</strong>- использовать уровни строго по назначению.</p>
154 </li>
154 </li>
155 <li><p><strong>Ротация, retention</strong>- не храните бесконечно.</p>
155 <li><p><strong>Ротация, retention</strong>- не храните бесконечно.</p>
156 </li>
156 </li>
157 <li><p><strong>Безопасность доступа</strong>- ограничить права чтения.</p>
157 <li><p><strong>Безопасность доступа</strong>- ограничить права чтения.</p>
158 </li>
158 </li>
159 <li><p><strong>Маскирование чувствительных данных</strong>- чтобы избежать утечек.</p>
159 <li><p><strong>Маскирование чувствительных данных</strong>- чтобы избежать утечек.</p>
160 </li>
160 </li>
161 <li><p><strong>Единый формат времени (UTC)</strong>- облегчает анализ.</p>
161 <li><p><strong>Единый формат времени (UTC)</strong>- облегчает анализ.</p>
162 </li>
162 </li>
163 </ol><p>Пример настройки в logback.xml (Java):</p>
163 </ol><p>Пример настройки в logback.xml (Java):</p>
164 <h2>Инструменты и стек логирования</h2>
164 <h2>Инструменты и стек логирования</h2>
165 <p>Современные системы логирования включают три уровня:</p>
165 <p>Современные системы логирования включают три уровня:</p>
166 <p>Также популярны<strong>Sentry</strong>,<strong>New Relic</strong>,<strong>Datadog</strong>- для APM (Application Performance Monitoring) с логами и трассировками.</p>
166 <p>Также популярны<strong>Sentry</strong>,<strong>New Relic</strong>,<strong>Datadog</strong>- для APM (Application Performance Monitoring) с логами и трассировками.</p>
167 <h2>FAQ</h2>
167 <h2>FAQ</h2>
168 <ol><li><p><strong>Лог-файлы - что это простыми словами?</strong>Это текстовые файлы, где программы записывают всё, что с ними происходит.</p>
168 <ol><li><p><strong>Лог-файлы - что это простыми словами?</strong>Это текстовые файлы, где программы записывают всё, что с ними происходит.</p>
169 </li>
169 </li>
170 <li><p><strong>Что такое логи в программировании?</strong>Журналы работы программ: действия, запросы, ошибки, системные сообщения.</p>
170 <li><p><strong>Что такое логи в программировании?</strong>Журналы работы программ: действия, запросы, ошибки, системные сообщения.</p>
171 </li>
171 </li>
172 </ol><p><strong>3. Какой формат у логов?</strong>Часто - Common Log Format, syslog или JSON.</p>
172 </ol><p><strong>3. Какой формат у логов?</strong>Часто - Common Log Format, syslog или JSON.</p>
173 <p><strong>4. Как открыть файл .log?</strong>Любым текстовым редактором (Notepad, VS Code) или через консоль (cat, less, tail -f).</p>
173 <p><strong>4. Как открыть файл .log?</strong>Любым текстовым редактором (Notepad, VS Code) или через консоль (cat, less, tail -f).</p>
174 <p><strong>5. Что значит “отправить лог”?</strong>Передать файл с журналом событий специалисту для анализа проблемы.</p>
174 <p><strong>5. Что значит “отправить лог”?</strong>Передать файл с журналом событий специалисту для анализа проблемы.</p>
175 <p><strong>6. Что такое логирование ошибок?</strong>Фиксация исключений, сбоев программы в журнал.</p>
175 <p><strong>6. Что такое логирование ошибок?</strong>Фиксация исключений, сбоев программы в журнал.</p>
176 <p><strong>7. Что означает “юз лог”?</strong>Обычно имеется в виду “используй лог”, то есть проверь журнал событий для диагностики.</p>
176 <p><strong>7. Что означает “юз лог”?</strong>Обычно имеется в виду “используй лог”, то есть проверь журнал событий для диагностики.</p>
177 <h2>Глоссарий</h2>
177 <h2>Глоссарий</h2>
178 <ul><li><p><strong>Log</strong>- журнал событий.</p>
178 <ul><li><p><strong>Log</strong>- журнал событий.</p>
179 </li>
179 </li>
180 <li><p><strong>Логирование (logging)</strong>- процесс записи событий.</p>
180 <li><p><strong>Логирование (logging)</strong>- процесс записи событий.</p>
181 </li>
181 </li>
182 <li><p><strong>Log file</strong>- текстовый файл с записями.</p>
182 <li><p><strong>Log file</strong>- текстовый файл с записями.</p>
183 </li>
183 </li>
184 <li><p><strong>Syslog</strong>- стандарт обмена сообщениями журналов.</p>
184 <li><p><strong>Syslog</strong>- стандарт обмена сообщениями журналов.</p>
185 </li>
185 </li>
186 <li><p><strong>Log rotation</strong>- ротация логов по времени или размеру.</p>
186 <li><p><strong>Log rotation</strong>- ротация логов по времени или размеру.</p>
187 </li>
187 </li>
188 <li><p><strong>Severity level</strong>- уровень важности сообщения.</p>
188 <li><p><strong>Severity level</strong>- уровень важности сообщения.</p>
189 </li>
189 </li>
190 <li><p><strong>JSON</strong>- структурированный формат логов.</p>
190 <li><p><strong>JSON</strong>- структурированный формат логов.</p>
191 </li>
191 </li>
192 <li><p><strong>Correlation ID</strong>- уникальный идентификатор цепочки событий.</p>
192 <li><p><strong>Correlation ID</strong>- уникальный идентификатор цепочки событий.</p>
193 </li>
193 </li>
194 <li><p><strong>Aggregator / Collector</strong>- программа, собирающая логи.</p>
194 <li><p><strong>Aggregator / Collector</strong>- программа, собирающая логи.</p>
195 </li>
195 </li>
196 <li><p><strong>Retention policy</strong>- политика хранения логов.</p>
196 <li><p><strong>Retention policy</strong>- политика хранения логов.</p>
197 </li>
197 </li>
198 </ul><h2>Ссылки и источники</h2>
198 </ul><h2>Ссылки и источники</h2>
199 <ul><li><p><a>RFC 3164: The BSD Syslog Protocol</a></p>
199 <ul><li><p><a>RFC 3164: The BSD Syslog Protocol</a></p>
200 </li>
200 </li>
201 <li><p><a>RFC 5424: The Syslog Protocol</a></p>
201 <li><p><a>RFC 5424: The Syslog Protocol</a></p>
202 </li>
202 </li>
203 <li><p><a>Apache HTTP Server Log Formats</a></p>
203 <li><p><a>Apache HTTP Server Log Formats</a></p>
204 </li>
204 </li>
205 <li><p><a>Linux man: journalctl, logrotate</a></p>
205 <li><p><a>Linux man: journalctl, logrotate</a></p>
206 </li>
206 </li>
207 <li><p><a>Microsoft Docs: Event Viewer</a></p>
207 <li><p><a>Microsoft Docs: Event Viewer</a></p>
208 </li>
208 </li>
209 <li><p>Elastic Stack Documentation:<a>https://www.elastic.co/</a></p>
209 <li><p>Elastic Stack Documentation:<a>https://www.elastic.co/</a></p>
210 </li>
210 </li>
211 <li><p>Sentry, Grafana, Splunk official docs</p>
211 <li><p>Sentry, Grafana, Splunk official docs</p>
212 </li>
212 </li>
213 </ul>
213 </ul>