Учимся вести логирования с помощью Log4j. Логирование как способ отлаживать код

В данном разделе представлены рекомендации по работе с программами для сбора логов. Данная информация необходима службе технической поддержки для точной диагностики проблемы на рабочем месте пользователя. Ниже доступны инструкции для приложений.

Сбор логов https с помощью FiddlerCap

Установка FiddlerCap

Необходимо скачать и запустить приложение .

В открывшемся окне нажать на кнопку «Install». В строке Destination Folder будет указан путь до папки, в которую установится FiddlerCap. По умолчанию там указывается Рабочий стол.

Дождаться окончания установки и нажать кнопку «Close».

Сбор логов с помощью FiddlerCap

Найти папку FiddlerCap в той директории, которая была выбрана на этапе установки. По умолчанию FiddlerCap устанавливается на Рабочий стол. В папке FiddlerCap запустить файл «FiddlerCap.exe».

В пункте «Настройки захвата» установить три галки:

Если появится предупреждение об установке сертификата, то в нем следует нажать кнопку «Да». При необходимости, сертификат будет предложено удалить при сохранении логов.

Закрыть все браузеры, открытые на компьютере. Нажать на кнопку «Начать захват». Открыть программу, при работе с которой появляется ошибка (например, Контур.Экстерн), и воспроизвести ошибку.

После того, как ошибка будет воспроизведена, необходимо нажать на кнопку «Остановить захват» в окне программы FiddlerCap. Логирование завершится.

Выбрать папку для сохранения.

Файл с логами будет сохранен в выбранной папке.

При сохранении логов появится окно с вопросом об удалении сертификата из корневого хранилища. На усмотрение пользователя можно выбрать любой вариант.

Запись сетевого трафика в Internet Explorer

Для записи сетевого трафика в Internet Explorer необходимо открыть необходимую страницу в Internet Explorer. В Internet Explorer перейти в меню «Сервис» > «Средства разработчика F12» ("Tools" > «Developer Tools F12") F12 .

Если меню «Сервис» не отображается, то нажать клавишу «Alt» на клавиатуре .

Перейти на вкладку «Сеть (Network)» > «Ctrl+4». Включить сбор сетевого трафика: в Internet Explorer 9 нажать «Начать сбор». В Internet Explorer 11 нажать на кнопку с зеленым треугольником.

Воспроизвести ошибку (например, обновить страницу, либо перейти по нужной ссылке). Сохранить собранный лог, нажав на изображение дискеты.

В ыбрать папку для сохранения, ввести имя файла, нажа ть «Сохранить». Файл будет создан в xml формате. Создание лога завершено.

Запись сетевого трафика в Mozilla Firefox

Для записи сетевого трафика в Mozilla Firefox необходимо открыть необходимую страницу в Mozilla Firefox. В IMozilla Firefox перейти в меню «Сервис» > «Разработка» > «Средства разработчика (Ctrl + Shift + I) либо нажать на клавиатуре клавишу F12 .

Перейти на вкладку «Сеть» и обновите страницу, нажав на клавиатуре клавишу F5 . Воспроизведите ошибку.

Выделите любую запись из лога — нажмите по нему правой кнопкой мыши и нажмите на «Сохранить все как HAR».

Запись сетевого трафика в Google Chrome

Для записи сетевого трафика в Google Chrome необходимо открыть необходимую страницу в Google Chrome. В Google Chrome перейти в меню «Сервис» > «Дополнительные инструменты» >«Средства разработчика (Ctrl +Shift +I) либо нажать на клавиатуре клавишу F12 .

Передите в раздел Network и обновите страницу, нажав на клавиатуре клавишу F5 . Воспроизведите ошибку.

Если запись логов не началась автоматически, нажмите на кнопку «Record Network Log».

Выделите любую запись из лога, нажмите по нему правой кнопкой мыши и нажмите на «Save as HAR with content».

Выберите папку для сохранения, введите имя файла, нажмите на сохранить. Файл будет сохранен в формате har.

Установка

Необходимо скач ать и запустить приложение . На предложение начать установку следует ответить утвердительно, нажав на кнопку «Да».

В открывшемся окне нажать на кнопку «Next».

В следующем окне необходимо установить переключатель «I accept the terms in the Licence Agreement» и кликнуть по кнопке «Next».

Выбрать тип установки «Typical».

Отметить пункт «Create shortcut for Microsoft Network Monitor on the desktop» (Создать ярлык на рабочем столе) и нажать на кнопку «Install».

Нажать на кнопку «Finish» для завершения установки.

После окончания установки необходимо дождаться окончания автоматической настройки компонента Microsoft Network Monitior 3.3 Parsers.

Запуск логирования

Закрыть неиспользуемое программное обеспечение (это необходимо для исключения сохранения в лог активности сторонних продуктов). Запустить программу с помощью ярлыка на рабочем столе.

В главном окне программы выбрать меню «File» > «New» > «Capture».

Нажать на кнопку «Start», после чего свернуть программу и воспроизвести ошибку.

Воспроизвессти ошибку, нажать на кнопку «Stop», выбрать меню «File» > «Save As», указать каталог для сохранения и имя файла и нажать на кнопку «Сохранить». Создание лога завершено.

Process Monitor

Чтобы начать логирование при помощи программы Process Monitor, необходимо выполнить следующие шаги:

Закрыть неиспользуемое программное обеспечение (это необходимо для исключения сохранения в лог активности сторонних продуктов), скач ать и запустить приложение .

После запуска программы выбрать меню «File» > «Capture Events». Логирование будет остановлено. Выбрать меню «Edit» > «Clear Display». Автоматически записанный лог будет удален. Программа готова к работе.

Выбрать меню «File» > «Capture Events». Логирование будет запущено. Свернуть приложение и воспроизвести ошибку.

Восстановить приложение и выбрать меню «File» > «Capture Events». Логирование будет остановлено. Выбрать меню «File» > «Save». Установить переключатель «All Events».

Кликнуть по кнопке с тремя точками справа от поля «Path», указать папку для сохранения и имя файла (рекомендуется оставить по умолчанию) и нажать на кнопку «Сохранить».

В окне параметров сохранения файла нажать на кнопку «Сохранить». Создание лога завершено.

Когда программа ведет запись действий в лог-файл (как правило, это файлы с расширением *.log), можно выяснить когда произошло то или иное событие, в какой момент времени произошел сбой приложения или возникла ошибка. Логирование позволяет отследить время старта сервера и его остановку, время подключения пользователя к базе данных, время попытки взлома веб-сервера и другие важные события, в зависимости от того, какая программа ведет запись истории в файл лога. Просмотр лога помогает отладить тот или другой программный процесс. LogViewer Pro - бесплатная для домашнего использования программа для просмотра логов. С её помощью Вы сможете читать лог-файлы в удобном виде, с выделением строчек лога цветом, в зависимости от того, какую информацию несет запись.

Просмотр логов

Просмотрщик логов LogViewer Pro можно адаптировать под любую структуру записи файла лога. Для выделения цветом отдельных строчек лога достаточно задать выражение - слово или символы, встречающиеся в строке. Утилита распознает большое количество кодировок, выполняет поиск по файлу лога, умеет переносить строчки при недостаточной ширине окна, выводит содержимое лога на печать, поддерживает открытие сразу нескольких файлов в одном окне. К файлу лога можно применить фильтр, при просмотре лога можно устанавливать закладки, для удобства просмотра LogViewer Pro пронумерует строчки. Для оперативности и постоянного мониторинга программа может читать лог в режиме реального времени. Интерфейс программы изменяется - можно изменить цвет фона, выбрать шрифт, добавить или убрать отдельные элементы приложения. LogViewer Pro поддерживает работу из командной строки, является portable-приложением. Программа бесплатна для частного, домашнего использования. При бесплатном использовании утилиты LogViewer Pro будет при запуске открывать окно на 25 секунд с предложением о покупке лицензии - это единственное ограничение функционала программы.

Скриншоты программы LogViewer Pro


Давайте научимся следить за выполнением логики в нашей программе, для этого мы научимся использовать логирование, поймем зачем оно и где используется.

Шаг 0. Обзор

Логирование – не используя термины википедии, то это возможность следить за процесом выполнения бизнес-логики проекта.

Зачем нужно логирование и что оно даёт?

Допустим у вас есть WEB-проект, и он что-то делает, сейчас не важно что именно. Допустим это интернет магазин, на котором при оформлении заказа нужно отправить на почту покупателю отчет о его покупке, но почтовый сервер вышел из строя, и программно письмо не отправилось.

Вы, как человек который администрирует магазин начнет разбераться в чем же проблема. Неопытный человек будет долго искать проблему, а опытный сразу полезет в логи сервера, но там все логи сервера и найти то что нужно вам сложно.

В этом случае решение следующее, выводить нужные вам логи в отдельный файл. Но как понять, какие из всех логов, которые сыпятся в общий лог сервера нужны вам? Для этого нужно реализовать свою систему логирования, где вы сможите указать какие логи куда выводить, или же настроить уровни логирования.

В данном уроке мы рассмотрим как сконфигурировать и начать использовать Log4j.

Шаг 1. Создаем проект и добавляем завимости

Запускаем всеми любимую Intellij IDEA и тыкаем New Project выбираем Maven Module и называем его:

Теперь в pom.xml жлбавим зависимость:

log4j log4j 1.2.17

Это все зависимости, которые надо было подключить.

Шаг 2. Создание примитивной логики для примера

Давайте создадим класс в котором была бы бизнес-логика, назовем его OrderLogic :

Package com.devcolibri.logpack; public class OrderLogic { public void doOrder(){ // какае-то логика System.out.println("Заказ оформлен!"); addToCart(); } private void addToCart() { // добавление товара в корзину System.out.println("Товар добавлен в корзину"); } }

Хочу обратить ваше внимание на то, что логика данного проекта не важна, так как мы рассматриваем логирование, для этого я и подготовил примитивную логику класса OrderLogic.

И теперь создаем Main класс:

Package com.devcolibri.logpack; public class Main { private static OrderLogic logic; public static void main(String args) { logic = new OrderLogic(); logic.doOrder(); } }

В результате выполнения данного кода, мы получим следующее:

Заказ оформлен! Товар добавлен в корзину

Как видите пока ничего нового.

Шаг 3. Конфигурируем Log4j

Чтобы гибко управлять логированием стоит создать в resources/ файл log4j .properties:

Теперь в этот файл добавим пару строк конфигураций:

# Уровень логирования log4j.rootLogger=INFO, file # Апендер для работы с файлами log4j.appender.file=org.apache.log4j.RollingFileAppender # Путь где будет создаваться лог файл log4j.appender.file.File=C:\\TMP\\log_file.log # Указываем максимальный размер файла с логами log4j.appender.file.MaxFileSize=1MB # Конфигурируем шаблон вывода логов в файл log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Теперь давайте более детальней разберем строку формирования шаблона:

Log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Значения:

%d{yyyy-MM-dd HH:mm:ss} – выводит дату в формате 2014-01-14 23:55:57

%-5p – выводит уровень лога (ERROR , DEBUG , INFO …), цифра 5 означает что всегда использовать 5 символов остальное дополнится пробелами, а минус (-), то что позиционирование по левой стороне.

%L – номер строки в которой произошёл вызов записи в лог.

%m – сообщение, которое передали в лог.

%n – переход на новую строку.

Шаг 4. Добавляем примитивное логирование

Теперь в класс OrderLogic добави логирование и посмотрим на результат:

Package com.devcolibri.logpack; import org.apache.log4j.Logger; public class OrderLogic { // Инициализация логера private static final Logger log = Logger.getLogger(OrderLogic.class); public void doOrder(){ // какае-то логика System.out.println("Заказ оформлен!"); // логируем инфо log.info("Это информационное сообщение!"); addToCart(); } private void addToCart() { // добавление товара в корзину System.out.println("Товар добавлен в корзину"); // логируем ошибку log.error("Это сообщение ошибки"); } }

Теперь давайте запустим код опять. Мы получим тот же результат, вот только уже по пути C://TMP/ будет лежать файл log_file.log со следующим содержимым:

2014-01-14 23:55:57 INFO OrderLogic:12 - Это информационное сообщение! 2014-01-14 23:55:57 ERROR OrderLogic:19 - Это сообщение ошибки

Состав сервисного лог-журнала

Сервисный лог включает в себя все этапы работы сервера логики. Данным параметром регулируется его состав: какие режимы и модули производят логирование, а какие нет. Параметр представляет собой строку, каждая из позиций которой содержит 0 или 1 и отвечает за включение логирования конкретного режима.

Сервисный лог нужен при обращении в тех.поддержку по проблемам, касающимся работы сервера. В обычном режиме его можно держать отключенным (или включенным неполностью), так как плотная работа сервера в непрерывном режиме может создавать файлы журнала в объеме до нескольких гигабайтов в сутки. Для отладки в реальном времени необходимо включить исследуемые режимы, произвести определенные действия, после чего вновь отключить. Сформированный файл в совокупности с другими журналами отправить в тех.поддержку. См. также модуль Сборка лог-журналов .

Значение позиций параметра в порядке следования

  • 1. ProcedureShow
  • 2.PBXSS
  • 3.DB - логирование обращений в базу данных
  • 4.HAL - логирование ядра
  • 5.CallTaskManager - управление задачами
  • 6.SmsTaskManager - логирование смс-сервиса.
  • 7.SvcTaskManager - логирование служебных задач
  • 8.AutoCallManager - логирование сервиса автодозвона
  • 9.CallCenter - общее логирование Call-центра, имена операторов пропадут из задач.
  • 10.CallPoolProgressive - логирование задач с прогрессивным обзвоном
  • 11.CallPoolDistributed - логирование задач с ручным распределением
  • 12.CallPoolReserved - логирование задач с закреплением абонента за оператором
  • 13.CallPoolIncoming - логирование входящих задач
  • 14.Searcher - логирование поиска оператора и абонента
  • 15.CallHelper
  • 16.TaskLogic
  • 17.TALK - логирование диалоговых сценариев
  • 18.SVC - логирование служебных сценариев
  • 19.IVR - логирование IVR сценариев
  • 20.IvrObjectReport - логирование объектов IVR
  • 21.LineLogic
  • 22.LineThreads
  • 23.LLHWactions
  • 24.Queue
  • 25.QueueDebug пропадут подробности переключений
  • 26.Timer - логирование таймеров
  • 27.FlashTimer - логирование таймеров при переключении
  • 28.ExtLines - логирование внешних линий
  • 29.GetSetState
  • 30.ShowHWActions
  • 31.Threading
  • 32.UserState - логирование состояний пользователя
  • 33.DTMF - логирование полученных DTMF сигналов
  • 34.Signals
  • 35.MessageLoopReport
  • 36.Conference - логирование конференц-связи
  • 37.IMMessaging - логирование сообщений
  • 38.UserRequest

Логирование счетчиков производительности

При активации в лог-журнал watcher сервера наравне с информацией о собственных процессах службы начинают фиксироваться стандартные счетчики производительности.

В зависимости от выбранного режима логируются значения базовых счетчиков, пользовательских счетчиков или и тех, и других вместе. Базовыми считаются счетчики: общая загрузка процессора (0-100, %), объем доступной физической памяти (МБ), текущая очередь диска (0-10), процент использования файла подкачки.

В качестве пользовательских могут быть указаны любые другие счетчики, существующие и доступные в системе. Для их указания используются специальные ключи файлов конфигурации:

где {0} - числовой порядковый индекс счетчика производительности. В качестве значения для счетчика производительности, отслеживающего общую загрузку процессора, например, подставляется "Processor|% Processor Time|_Total ". Для других счетчиков соответственно.

Логирование использования ресурсов

С помощью параметра можно настроить вывод в лог журнал WATCHER информации по использованию процессом (процессами, в случае разделения) ресурсов системы. Объем используемой памяти, количество открытых дескрипторов, количество потоков, пользовательские системные ресурсы, ориентировочное среднее процессорное время по всему процессу и отдельно по всем его потокам.

Логирование сбоев тактирования таймера

С помощью параметра можно настроить вывод в лог журнал WATCHER информации по выделению процессорного времени потокам системы. Вместе с основной деятельностью сервер постоянно проводит проверочные замеры тестовым таймером и засекает задержки в выдаче управления. В случае если операционная система отказывает в выделении службе сервера процессорного времени, это происходит и с тестовым таймером. Существует возможность выставить границу для его логирования. Среди вариантов границы задержки в 20 мс, 100 мс, 500 мс, 1 с и 5 с. По умолчанию логируются все задержки более 100 мс. Увеличение и уменьшение значения может потребоваться проводить в случае запроса из технической поддержки в ходе работ над поиском причин заметного некорректного поведения сервера.

Параметры аппаратуры. Конфигурация

В данном модуле можно включить и отключить логирование событий аппаратуры (папка \oktell\Server\Log\Hardware). По умолчанию, некоторые трассировки выключены.

  • Во время работы системы логируются события, которые включены в модуле "параметры аппаратуры ".
  • В момент запуска системы логируются события, которые обозначены в серверном конфигурационном файле в ключе TRACE_HARDWARE

Ниже приводится описание параметров аппаратуры, соответствующих им ключей и описание.

Параметры аппаратуры. Конфигурация. Файл конфигурации TRACE_HARDWARE Описание
Общая трассировка CALL Общее состояние системы
Трассировка событий аппаратуры EVENTS События генерируемые аппаратурой или сетью
Трассировка медиа трафика MEDIA-FLOW Аудио/видео данные проходящие через сервер
Трассировка сетевых подключений NET Включение/отключение сетевых соединений
Трассировка пакетов протокола SIP PROTO Печать пакетов по протоколу SIP. Лог trn.
Трассировка таймеров TIMER Включение/отключение и события таймеров
Трассировка SIP транзакций TRANS Прием передача пакетов по протоколу SIP. Лог ua.
Трассировка SIP сессий SESSION Обработка запросов по протоколу SIP. Лог ua.
Трассировка транков TRUNK Не используется
Трассировка медийных потоков STREAM Включение/отключение и события медийных каналов
Трассировка предупреждений системы WARNING Предупреждения системы об отказе системы с возможностью продолжения работы
Трассировка ошибок системы ERRORS Критические ошибки системы
Трассировка RTP трафика RTP-FLOW Прием передача пакетов по протоколу RTP
Трассировка сетевых атак BANNED Обнаружение и отслеживание сетевых атак на порты SIP. Лог trn.
Трассировка RTP потоков RTP Включение/отключение и события RTP каналов
Трассировка асинхронных вызовов ASYNC Обработка команд в отдельных потоках исполнения
Трассировка факсов FAX Включение/отключение, события и пакеты факс-сеансов. Канальный лог.
Трассировка 1,2,3,4,5 FLAGxx (1-15) Используются разработчиками для отладки системы. Рекомендуется всегда держать отключенными.

Логирование сценариев

С помощью пункта Логирование указывается будет ли записывать в лог журнал выполнение компонентов данного сценария. Если сценарий отлажен, логирование можно выключить.

Часть 1. Типы логов. Конфигурирование логирования информации.

Естественной потребностью системного администратора или специалиста по безопасности является некий анализ того, что происходит как на конкретном компьютере конкретного пользователя, так и в локальной сети. Технически задача выполнима, ибо разработчики множества приложений, которыми мы пользуемся, заложили в свои продукты функцию логирования информации. Информация, которую хранят логи конкретного компьютера в сети, может сказать много тому, кто, с некоторым знанием предмета, рискнет заглянуть внутрь. Нельзя сказать, что чтение логов является тайной дисциплиной, которая доступна только просвященным гуру, впрочем, для того, чтобы легко ориентироваться и четко сопоставлять информацию, которая встречается в логах различных приложений, надо действительно иметь представление о том, что и как, почему и зачем пишется в логи, а кроме того, четко представлять предметную область изучаемого ПО. Дело в том, что запись информации в логи (вероятно, в силу некой меньшей приоритетности, чем работа самого приложения) страдает хаотичными веяниями различных производителей. Соответственно, и интерпретировать такую информацию надо с учетом специфики и, может быть, каких-то рекомендаций производителя.

Для того чтобы грамотно добывать полезную информацию из логов, иногда достаточно простого текстового редактора и головы, но часто встречаются ситуации, когда лог и просмотреть довольно сложно, и трактовать правильно тяжело. В этом случае полезно знать о некоторых особенностях структуры различных лог-файлов и об информации, которая в них встречается.

Типы логов (механизмы логирования информации)

Конфигурирование логирования

Чаще всего логирование — процесс тихий и незаметный. Система пишет логи, тихо используя некоторую конфигурацию, которая предусмотрена производителем. Обычно конфигурация логирования подбирается так, чтобы это не вызывало какой-то проблемы у пользователя. Проблемы могут быть самые разные: от понижения производительности из-за постоянной записи информации в логи (на жесткий диск) до проблем со свободным местом на жестком диске.

Интенсивное логирование может серьезно повлиять на производительность системы

Довольно часто либо логирование выключено полностью, либо инсталляционная программа потребует точных указаний о том, что делать с логированием. Если есть подозрение, что логирование будет довольно интенсивным, то следует заранее задуматься о том воздействии, которое логирование будет оказывать на систему. Кроме самого простейшего случая, когда логирование может быть или включено, или выключено, приложения часто предоставляют куда более настраиваемые и удобные средства управления. Типичные функции таковы.

  1. Имя файла, директория или полный путь к тому файлу, в который пишется лог. Это очень полезно, если логирование необходимо и есть возможность или необходимость организовать запись логов на отдельный жесткий диск, сетевой диск и т. п. Такой способ удобен, если логи будут интерпретироваться сторонним приложением, которое находится на отдельном компьютере и каким-либо образом может повлиять на работу основной системы.
  2. Критерий замены лога (Log Rotation). Рано или поздно логи становятся большими или их становится слишком много. Чтобы избежать проблем, которые с этим связаны (постоянная работа с огромным файлом отрицательно сказывается на производительности системы), программы, осуществляющие логирование, обычно используют что-нибудь из следующего списка возможностей управления логами:
    • Каждый день (неделю, месяц и т. д.) система использует новый лог-файл. Обычно если смена лог-файлов связана с каким-либо исчислением времени (каждый день, каждый год и т. п.), то в имени используется время (дата и время или только дата, иногда какая-нибудь производная) создания или финального закрытия (финализации) данного лог-файла. Если система использует уникальное имя (а имя с датой, временем или их производной можно считать уникальным, так как время монотонно возрастает), то такие логи обычно не очищаются системой. К примеру, Symantec Antivirus или Tivoli Access Manager for e-Business используют лог-файлы, которые хранят в своем имени время смены лог-файла. В множестве таких логов, которые, к примеру, скопились за долгое время, очень удобно искать информацию, относящуюся к конкретному промежутку времени. Кроме того, выработав критерий длительности хранения старых логов, довольно легко очищать уже устаревшие логи.
    • Смена файла происходит по достижении им определенного размера. Старый файл обычно сохраняется определенное время. Может быть, удаление старых файлов оставлено на решение пользователя, то есть в случае с файлами, которые хранят в своем имени дату и время, они могут храниться вечно, так как система не заботится о них, но пользователь в любой момент может решить, что старые файлы ему не нужны, и удалить их. В этом, кстати, дополнительное удобство — в имени файла хранится дата его создания, то есть всегда легко понять, нужен такой файл или нет. Имя файла может содержать порядковый номер этого лога, то есть каждая последующая смена увеличивает счетчик на единицу. Количество таких файлов тоже может быть произвольно, кроме того, они могут быть дополнительно заархивированы, что экономит некоторое место при длительном хранении. Типичным примером является Linux (UNIX) Syslog, который позволяет настраивать как размер файла, так и количество используемых файлов.
    • Смена файла происходит одновременно с перезапуском сервиса, который пишет лог. Случай представляет собой некоторую опасность, так как в некоторых случаях сервис может не перезапускаться месяцами, а то и годами. Это приводит (точно-точно, такие случае не очень часты, но все равно бывают) к тому, что в определенный момент становится понятно, что лог-файл уже занимает огромное место на жестком диске, которое рациональнее использовать для чего-либо иного. Используется, к примеру, HP Tru64 UNIX (вообще говоря, HP Tru64 имеет некое ограничение на размер Audit Log, которые пишутся между перезапуском сервисов, но это ограничение довольно велико – около 300 Mб).
    • Частота сброса информации в файл. Такой параметр редко предоставляется для открытой модификации, но довольно часто он все же присутствует (к примеру, Tivoli Access Manager for e-Business). Он хорош тем, что при грамотной настройке несколько уменьшает число обращений к жесткому диску от логирующей программы, а плох тем, что, модифицировав его, довольно легко серьезно снизить производительность сервера.
  3. Набор событий, которые логируются, почти всегда можно настраивать. Это решает часть проблем с производительностью

    Набор событий, которые будут логироваться. Довольно часто важно иметь возможность настроить логирование только тех событий, которые реально необходимы. К примеру, часто нет необходимости логировать информацию обо всех транзакциях в базе данных, особенно если это куча select-запросов, которые, вероятно, не содержат угрозы с точки зрения безопасности. В таком случае можно изрядно снизить нагрузку на сервер, выключив логирование транзакций, но оставив учет только реально необходимых событий: попыток авторизации, попыток доступа к файлам, изменения системных настроек и т. п. Обычно производитель предоставляет свои профили логирования: от полного выключения и до полного логирования всего происходящего. Довольно часто есть возможность указать даже не профиль, а настройки логирования для каждого конкретного события (например, такая возможность есть в MS SQL Server C2 Audit). Такие настройки позволяют сделать очень гибкое логирование информации, которая нужна в конкретном случае. Увы, но настройка логируемых событий встречается далеко не во всех программах.

Следует отметить, что указанные основные функции очень часть расширяются производителями ПО под свои конкретные нужды. Разрабатываются новые форматы хранения данных, новые методы и стандарты представления данных. Улучшаются производительность и универсальность систем логирования. Самое главное, что возрастающее количество проблем с безопасностью делает глобальной проблему учета и аудита всего, что так или иначе происходит на конкретном компьютере и в сети.