Powershell: логирование в json

Эта функция используется для записи логов в формате JSON. Функция принимает несколько параметров:

  • $logpath — строка, указывающая путь к директории, в которой будут храниться логи;
  • $Message — строка, содержащая сообщение для записи в лог;
  • $logname — строка, указывающая имя файла лога;
  • $Result — строка, указывающая результат выполнения скрипта («ERROR», «Warning», «Success»);
  • $PathConfig — необязательная строка, содержащая путь к конфигурационному файлу;
  • $OldValue — необязательная строка, содержащая старое значение;
  • $NewValue — необязательная строка, содержащая новое значение;
  • $e_error — необязательная строка, содержащая текст ошибки.

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

Далее функция проверяет, есть ли уже записи в логе. Если записей нет, создается новый объект лога, в котором содержится информация о имени сервера, имени скрипта и пустом массиве ConfigDataLog. Если в логе уже есть записи, текущий лог загружается в переменную $CurrentLog.

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

Если переменная $Env:DelLog равна 0, то перед сохранением текущего лога функция удаляет файл предыдущего лога, чтобы не было дубликатов записей. Если $Env:DelLog равна 1, то удаление предыдущего лога уже было выполнено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *