Project

General

Profile

Значение различных записей в отладочном логе

Лог содержит записи разных типов а произошедших ошибках и просто некоторых событиях. Отладочные логи предназначены в первую очередь для анализа разработчиками ПО и сотрудниками службы поддержки при определении конкретной причины неполадок в работе системы.
Обычно логи сохранятся в каталоге где находится приложение.exe>\DBG_LOG. Файлы логов разбиваются по границам суток и называются приложение_дата_время.txt.
Логи автоматически удаляются через 30 дней или по достижению максимального объема. Детали смотрите в настройках логов: Сервис\Настройки\Доп\Отладочные логи

По историческим причинам структура записей достаточно разнородна. Одна запись в файле лога состоит из нескольких полей, разделенных @. Запись может быть разбита на несколько строк текста. Пример строки лога:

000011E0 @ 26-05-2009, 16:14:11.307 @  @ THREADS @ FINISHED @ LIFE TIME:32.047 @ TCP_DEVICE_MANAGER


Значение полей одной записи в лог-файле приведено в таблице

Номер Фрагмент Значение
1 000011E0 Идентификатор потока, из которого сделана запись.
2 26-05-2009, 16:14:11.307 Дата и время события. Это локальное время компьютера.
3 не используется  
4 THREADS Идентификатор группы записей.
Записи одной группы могут быть включены или выключены настройкой отладочного лога.
5 FINISHED Тип сообщения. Обычно короткая строка. Определяет содержимое следующего поля.
6 LIFE TIME:32.047 Сообщение.
Может быть разбито на несколько строк символом переноса строки.
Собственно то, ради чего сделана запись.
7 TCP_DEVICE_MANAGER Строчное название потока, совершившего запись.
Поток с одинаковым ИД (поле 1) в разное время может иметь разное название.

Основные группы записей.

ERR_MSG

Включается: Отладочные логи\Опции\Сообщения об ошибках

Группа Описание
ERR_MSG Сообщения об ошибках.
В эту группу попадают все сообщения, которые появляются во всплывающем окне системных сообщений.
В окне сообщений отображаются только последние 100 записей, а в отладочном логе они сохраняются всегда и полностью.
В поле 5 у сообщений данной группы всегда находится тип сообщения:
8 - Ошибка
4 - Предупреждение
2 - Сообщение, обратное ошибке. Например, восстановление связи.
1 - Просто сообщение
Error - Ошибка
ASSERT - Ошибка селф-теста.

ADEV_WAVE: Query buffers timeout

ERR_MSG @ 8 @ ADEV_WAVE: Query buffers timeout b_in_player=3 b_whdr_done=0 b_cur=1 v1=1 s2=0


Фатальная ошибка в системе воспроизведения звука:Драйвер звуковой карточки перестал возвращать блоки данных.
Синхронно с этим сообщением прекращается воспроизведение звука. Причиной сообщения является некорректная работа драйвера звукового устройства. Обычно проблема устраняется обновлением версии драйвера звукового устройства.

MAIN_THREAD_LAG

Включается: Отладочные логи\Опции\Блокировка главного потока
Зависит от: Отладочные логи\Опции\Писать время блокировки главного потока, если оно больше (ms)

TIMER LAG

000011A8 @ 19-08-2009, 00:30:05.560 @  @ MAiN_THREAD_LAG @ TIMER LAG @ 5531 @ Main


Сообщает о том, что главный поток приложения был блокирован в течении указанного времени. На примере - 5531 мс ~5.5 сек. Это просто констатация данного факта. Запись появляется, если главный поток был блокирован более 2х секунд. Симптомы:

  • не перерисовываются окна или окно приложения закрашивается белым
  • не обрабатываются клавиши, мышь (но курсор мыши нормально перемешается), входящие команды ДУ.
  • Пользователи называют это - "Приложение зависло (подвисло) на х секунд"
  • воспроизведение звука продолжается без проблем, но, если очередь плеера опустеет, а главный поток останется блокированным, то плеер остановится и в эфире возникнет пауза, а в логе появится сообщение STOP SIGNALED. В режиме AUTO по окончании блокировки воспроизведение продолжится, в режиме LIVE - только при старте по времени.

Причиной могут быть:

  • Блокировки выполнения, связанные с ожиданием какого либо события (открытие файла, сохранение файла, обращение по сети и пр.), в т.ч., косвенные, через ожидание завершения такой операции в параллельном потоке. Обычно, причину можно найти в отладочном логе.
  • Недостаток времени ЦП. Ситуация, когда процессор (точнее, ядро, на котором работает главный поток) загружен на ~100%. Причем не обязательно его загрузил работой именно Джин, Это может быть любой приложение, в т.ч. вредоносное (червь, вирус). Причину в логе не видно, могут быть только неявные косвенные проявления.

PLAYER_io

Различные сообщения, касающиеся работы плееров. АВ-плеер не умеет писать данный лог.

Включается: Отладочные логи\Опции\Работа плеера.

Общие поля для всех записей

  • CH - канал плеера 0=A, 1=B и т.д.
  • ID - идентификатор потока воспроизведения в канале плеера
  • AID - внутренний идентификатор элемента в пределах блока расписания
  • dur - время выполнения операции в миллисекундах
  • FILE - имя файла (оригинального, не резервного)

Доработки

  • #2499 В информации об элементах добавлена длительность и runtime

AutoLoadOperation

Выполнение операции автоматической загрузки следующего элемента в очередь плеера. Название указывается сразу после длительности.

PLAYER_io @ AutoLoadOperation @ dur:0 News 00_00, AID=3, Duration=00:05.1, Runtime=00:05.1, FILE=\AIR1-WSR\IN-BOX\nov____preserved_4____0_00.wav @ Main

В примере загружен элемент News 00_00 длительностью и рантаймом 00:05.1.

PasteElem

Факт внесения элемента в очередь плеера.

PLAYER_io @ PasteElem REASON=SetNextAddToChain, AutoLoad, OnTimer @ News 00_00 AID=E3 FILE=\AIR1-WSR\IN-BOX\nov____preserved_5____0_00.mp3

REASON признаки выполнения операции (обычно, несколько)

  • Тип внесения в очередь
    • SetNextAddToChain - добавление в хвост очереди
    • SetNextClearTail - добавление с очисткой из очереди всех не играющих элементов
    • SetNextClearList - добавление с очисткой всей очереди
    • AutoLoad - операция выполнена в процессе автозагрузки следующего
    • DoPasteBefore - явная вставка в очередь перед определенным элементом
  • Причина вызова
    • OnObjDrop - это результат Drop операции - мышью. Вмешательство человека.
    • OnBtnLoad - это результат нажатия кнопки "загрузить" на плеере. Вмешательство человека.
    • OnTimer - обработка таймера (само вызвалось)
    • OnAutoChangeSchedule - при переходе через границу суток

OnCueCrossFade

PLAYER_io @ OnCueCrossFade @ PL_ID=OBJID_PLAY_X1        @ Main

В плеере запущена прослушка склейки.

Open elem

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

PLAYER_io @ Open elem CH=0 ID=124 @ dur:32 090919_Дузь_Россия за неделю AID=D7 FILE=\Air1-wsr\X\ROOT_AIR1-WSR\SND_TMP009-09-21____preserved_7____90919_Дузь_Россия за неделю.tpr

SearchStartPoint

PLAYER_io @ SearchStartPoint @ PL_ID=OBJID_PLAY_X1  NAME=One Day Too Late, AID=5, Duration=03:40.1, Runtime=03:21.5, Closed, FILE=\radio.srv\ROOT\SND\MUSIC\Skillet - One Day Too Late.mp3 @ Main

Запущен поиск точки старта.

ShowContextMenu

PLAYER_io @ ShowContextMenu @ PL_ID=OBJID_PLAY_X1  REASON=Right mouse click  @ Main

Открыто контекстное меню от одного из элементов в плеере.

SetFocusSelElem

PLAYER_io @ SetFocusSelElem @ PL_ID=OBJID_PLAY_X1  REASON=Right mouse click NAME=La banquet, AID=B, Duration=01:30.1, Runtime=01:30.1, Closed, FILE=\radio.srv\ROOT\SND\MUSIC\Yann Tiersen - La banquet.mp3 @ Main

На элементе в плеере установлен фокус ввода (например, щелчком мыши).

START

Начало воспроизведения в канале плеера - факт запуска канала, до этого канал был остановлен.

PLAYER_IO @ START CH=0 ID=124 OPEN=1 @        16 : REASON=FADER ON RES=OK
  • OPEN=1 - означает, что канал был открыт, то есть это первый поток воспроизведения в канале
  • REASON
  • FADER ON - фейдер-старт
  • AUTO_MODE AutoStartByTime - старт по времени в автоматическом режиме
  • AutoStartByTime - старт по времени в не автоматическом режиме
  • OnBtnStartNext - по кнопке на плеере
  • RES - чем кончилась попытка
  • OK - вещание началось
  • <не указано> - не получилось. Т.е. RES=

STOP

Обратное START - принудительная остановка воспроизведения в канале

STOP SIGNALED

PLAYER_io @ STOP SIGNALED CH=0 @ GetData @ Main

Обратное START - естественная остановка вещания в канале по причине завершения очереди воспроизведения во всех потоках воспроизведения.

END OF DATA

PLAYER_io @ END OF DATA CH=0 ID=124 @ GetData @ Main

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

Delete

Обратное Paste - удаление элемента из очереди плеера

Delete REASON=AutoDelete2 @ 1.Реклама - Открывашка AID=9 FILE=\radiocity.msft\mediastorage\Media\Commercial\Реклама - открывашка.mp2
  • REASON - причина. Частью такая же, как в Paste.
  • AutoDelete2 - обычное удаление, после завершения воспроизведения

PLAYER_MODE

Текущий режим работы плеера. пишется при любом изменении состояния и один раз в начале каждого часа.

000016F4 @ 06-11-2009, 16:35:08.573 @  @ PLAYER_io @ PLAYER_MODE @  MODE=LIVE AutoNext=1 AutoLoad=1 AutoTime=1 CommNonstop=0 LockRemote=0 REASON=OnBtnLive() @ Main
  • MODE : Основной режим (MAN|LIVE|AUTO)
  • AutoNext : Запрет/разрешение перехода на следующий элемент
  • AutoLoad : Запрет/разрешение автоматической подгрузки в очередь плеера следующего элемента из расписания 
  • AutoTime : Обработка меток времени
  • CommNonstop : Непрерывное воспроизведение рекламных блоков
  • LockRemote : Запрет/разрешение дистанционного управления (сигналом фейдер-старт)
  • REASON : Причина

Get_AudioData

Включается: Отладочные логи\Опции\Время чтения аудио блока.
Зависит от: Отладочные логи\Опции\Писать ’время чтения аудио блока’ только если оно больше (ms).

Содержит единственное безымянное сообщение, пример:

00000EAC @ 17-09-2009, 19:01:20.665 @  @ Get_AudioData @  @     39687 : WAVE: Axia Wave02 @ ADEV_WAVE:WAVE: Axia Wave02

в котором указывается время заполнения одного блока данных для звукового устройства. В данном случае - 39687 мс (~40 сек) заполнялся один блок данных (стандартной длительностью 0.1 сек). Вещание велось в устройство WAVE: Axia Wave02.

В эфире, при этом была, естественно, пауза.

Данное сообщение не имеет отношения к работе самого аудиоустройства. Сообщение говорит о недопустимо медленном получении звуковых данных из файла. Причины возникновения такого сообщения изложены тут.

Однократное появление такой записи с небольшим таймаутом само по себе не является проблемой. Пауза в эфире возникнет, только если в устройстве воспроизведения опустеет звуковой буфер, стандартно имеющий длину 1 сек (10 блоков по 0.1 сек).

Create_File

Группа сообщений, фиксирующих длительность выполнения работы с файлами.

Включается: Отладочные логи\Опции\Время открытия файлов
Зависит от:

  • Отладочные логи\Опции\Писать ’время открытия файла’ только если оно больше (ms)
    Запись попадет в лог только если она выполнялась дольше указанного времени. Вне зависимости от результата.
  • Отладочные логи\Опции\Записывать сообщения об ошибках открытия файлов игнорируя длительность
    Эта опция заставляет лог записывать в лог сообщения о всех неудачно закончившихся файловых операциях. По умолчанию она выключена и включать ее надо только в особых случаях. Сам по себе факт неудачного обращения к файлу не является ошибкой.

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

Запись в логе Описание
LockFileEx Блокировка (!LockFile) файла
CheckConnectionByHandle Проверка каталога на его наличие по хендлу
CheckFolderForFullAccess проверка на наличие полных прав доступа к каталогу
ScanFolder Считывание списка файлов в каталоге
GetLastWriteTimeA Прямое считывание даты модификации из файла
DBGLS_CreateFile_UNC Открытие файла
DBGLS_CreateFile_FK Открытие файла, возможно с переключением на файлы резерва
CreateFileMapping Открытие для отображения в ОЗУ
MapViewOfFile Отображение в ОЗУ
BuildInterface Создание звукового источника: открытие файла и и считывание информации о формате, создание декодера и пр.
ISoundFileXA Создание декодера MPEG
FindFirstFile_UNC Начало перебора файлов в каталоге

HOTRES. Горячий резерв

Переключение состояний модуля горячего резерва.

000008B0 @ 11-11-2009, 16:14:00.462 @  @ HOTRES @ OBJID_MASTER @ SendSetMode=RES OtherStationAutoMode=1 REASON=Manual @ Main


Главная станция послала на резервную запрос запрос на переключение режима.

00001730 @ 11-11-2009, 16:14:00.462 @  @ HOTRES @ OBJID_SLAVE @ MODE MAIN->RES OtherStationAutoMode=1 REASON=MSG_CMD_SET_MODE @ TCP_MANAGER


Переключение режима

00000ED4 @ 11-11-2009, 16:13:57.852 @  @ HOTRES @ OBJID_MASTER @ OtherStationAutoModeChanged 0->1 @ TCP_MANAGER


Переключение автоматического режима плеера на другой стороне.

  • OtherStationAutoMode - Плеер на другой стороне в автоматическом режиме, то есть готов стартовать с текущей позиции.
  • REASON - причина

DDB_UI

Сообщения о действиях с пользовательским интерфейсом модуля DDB.

Включается: Отладочные логи\Опции\Пользовательский интерфейс DDB

Логируются операции на панели DDB и в списке соединений.

Сообщения бывают двух видов:

Не связанные с выбранным соединением, вида:
DDB_UI @ ИСТОЧНИК @ Сообщение; REASON: причина @

например:

00002B0C @ 11-04-2017, 11:43:11.479 @  @ DDB_UI @ OBJ_DDB @ On selected, 0 -> 1; REASON: SYSTEM @ Main
00002B0C @ 11-04-2017, 11:43:18.620 @  @ DDB_UI @ CONNECT_LIST @ On add connection; REASON: USER @ Main

Связанные с выбранным соединением:
DDB_UI @ ИСТОЧНИК @ Сообщение; CONN: название соединения; REASON: причина @

например:

00002B0C @ 11-04-2017, 11:43:39.020 @  @ DDB_UI @ OBJ_DDB @ On start; CONN: NewConnect; REASON: USER @ Main
00002B0C @ 11-04-2017, 11:43:47.100 @  @ DDB_UI @ CONNECT_LIST @ On connection properties; CONN: NewConnect; REASON: USER @ Main

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

  • OBJ_DDB - панель управления DDB,
  • CONNECT_LIST - список соединений

В поле "название соединения" указывается пользовательское название выбранного в списке соединения.
В поле "причина" - причина операции: либо USER (действие пользователя), либо SYSTEM (внутренняя логика программы).

Возможные сообщения:

Запись в логе Описание
LockFileEx Блокировка (!LockFile) файла
On add connection Создание нового соединения
On import connection Импорт соединения
On start Старт выбранного соединения
On stop Остановка выбранного соединения
On delete connection Удаление выбранного соединения
On export connection Экспорт выбранного соединения
On connection properties Открытие свойств выбранного соединения
On start all Нажата кнопка "стартовать все"
On stop all Нажата кнопка "остановить все"
On refresh Вызвано обновление состояния соединений
On locked, X -> Y Изменение режима Lock с X на Y
On selected, X -> Y Изменение режима Select с X на Y
On log type: %d -> %d Изменение режима Log type с X на Y
On status type changed Изменение режима отображения соединений

Примечание: в текущей реализации REASON: SYSTEM в типе сообщений DDB_UI появляется по событиям только от 2х кнопок в окне DDB: Selected, Refresh.

MAIN

Группа сообщений о некоторых "основных" событиях.
Включается: Отладочные логи\Опции\Основной

SCHEDULE UPDATE

С версии 2.15.2. Информация о фоновом считывании изменений, внесенных в расписание с других рабочих мест. Вносится в лог в случае, если программа заметила (получила нотификацию от системы отслеживания файлов, см. [#CH_FIXER CH_FIXER, что изменился файл блока расписания, считала этот блок и действительно внесла в расписание изменения. При этом в логе фиксируется только название файла блока и версия файла (счетчик модификаций). Само содержимое блока в этот лог не попадает. Содержимое, соответствующее определенной версии можно посмотреть в Логе редактирования расписания.
Если программа явно считала изменения, например, при редактировании блока, то данная запись в логе не формируется.

Примеры записей:

00004A8 @ 10-12-2010, 12:31:07.336 @  @ MAIN @ SCHEDULE UPDATE @ Changes in schedule:
    Diff:
    Old: 2010-12-10, 12:26:50:361, Ver=   2, File= \Sql-srvr\F\ROOTS\PT\PLAYLIST010-12-100279A0A.blk
    New: 2010-12-10, 12:31:05:258, Ver=   3, File= \Sql-srvr\F\ROOTS\PT\PLAYLIST010-12-100279A0A.blk


В каждой записи отводится по одной строке для блока, строк может быть много. В каждой строке указывается тип изменения: New - появление блока, Diff - изменение, Del - удаление.
В записи указывается:

  • Дата модификации файла блока, приведенная к локальному времени
  • версия блока (кол-во редактирования блока)
  • Имя файла блока

При изменении указываются новые и старые значения.

CH_FIXER

С версии 2.15.3. #2104 добавлена группа сообщений, относящихся к системе отслеживания изменений в файловой системе.

Включается: Отладочные логи\Опции\Система отслеживания изменений в файловой системе.

Информация о том, какая именно операция вызывает задержки интересна, обычно, только разработчикам. 
При нормальной работе допускаются единичные таймауты длительностью до секунды (по умолчанию установлено значение "Нет").

Запись в логе Описание
ProcessNotify Анализируем полученные изменения и рассылаем нотификацию. В сообщении информация о том какая сообщения обрабатывались на предмет того, нужно ли посылать нотификацию.
CompareState Операция считывания каталога и сравнения с хранимой копией на предмет обнаружения изменений
FullRefresh Принято решение о полном перечитывании каталога. Причина может быть:
NeedFill=1 - начальная инициализация или инициализация после ошибки
undefined_notify=1 - получена нотификация об изменениях без указания подробностей
ReceiveNotify Получаем нотификации от системы. В сообщении информация о том какая нотификация была получена. О каком файле и что с ним произошло.
NewElement Отправлена нотификация о новом элементе
DelElement Отправлена нотификация об удалении элемента
SameElementNochange Состояние элемента не изменилось. Нотификация не отправлена.
SameElementChanged Отправлена нотификация об изменении элемента
SameElementAttribsChanged Отправлена нотификация об изменении атрибутов элемента
AddWish Добавлен запрос на отслеживание изменений в каталоге
DelWish Удален запрос на отслеживание изменений в каталоге

В дополниельной строке кажного сообщения указывается адрес объекта запроса на отслеживание каталога (WISH_ADDR=%Xh) и путь к отслеживаемому каталогу (Dir=full path)

Видео логгер

Группа сообщений, фиксирующих возникшие ошибки, события, сообщения от графа.

Включается:

  • Отладочные логи\Опции\Видео логгер: ошибки
  • Отладочные логи\Опции\Видео логгер: события
  • Отладочные логи\Опции\Видео логгер: сообщения от графа
00000AF4 @ 29-12-2009, 23:52:12.765 @  @ VLogger: Error @ TV_2 @ Deadlock @ 8 @ Main


Система попала в ситуацию, когда она не получила данных от устройства видео захвата. 8 - это количество таких ситуаций.

00000AF4 @ 29-12-2009, 23:52:12.765 @  @ VLogger: Event @ TV_2 @ disconnect Bridge @ Main


Произошло разъединение моста между получающим и записывающим графами.

00000AF4 @ 29-12-2009, 23:52:12.765 @  @ VLogger: Graph @ TV_2_Write @ 058053C8 @ Stop @ Main


Остановка записывающего графа

00000AF4 @ 29-12-2009, 23:52:13.296 @  @ VLogger: Graph @ TV_2_Write @ 058053C8 @ Destroy  @ Main


Уничтожение записывающего графа.

00000AF4 @ 29-12-2009, 23:52:12.765 @  @ VLogger: Error @ TV_2 @ Deadlock @ 8 @ Main
00000AF4 @ 29-12-2009, 23:52:12.765 @  @ VLogger: Event @ TV_2 @ disconnect Bridge @ Main
00000AF4 @ 29-12-2009, 23:52:12.765 @  @ VLogger: Graph @ TV_2_Write @ 058053C8 @ Stop @ Main
00000AF4 @ 29-12-2009, 23:52:13.296 @  @ VLogger: Graph @ TV_2_Write @ 058053C8 @ Destroy  @ Main


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

FKEEPER. Резервное копирование (Подкачка)

Записи данного типа вносит в лог система резервного копирования на локальный диск.

Включается: Отладочные логи\Опции\Система подкачки файлов

Существуют записи следующих типов

Запись Значение
Begin copy Система начала фоновое копирование указанного исходного файла
End copy Система закончила копирование исходного файла
Final copy Система закончила формирование резервной копии фала, только при успешном завершении EndCopy
Del file Система удаляет файл, время нахождения которого в кеше подкачки истекло

Например:

0000079C @ 18-11-2010, 15:50:21.692 @  @ FKEEPER @ Del file   @ FAIL, LastEror=32,  [\Dc3\ROOT\SND\Rolik Storm8-1.wav] -> [D:\Reserv\Dc3\ROOT\SND\Rolik Storm8-1.wav] @ F_KEEPER


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

WAVE_IO. Операции со звуковой картой

Записи данного типа относятся к подсистеме воспроизведения/записи звука, включая все варианты обмена: стандартный, SP, ASIO.
Основное назначение - фиксация в логе низкоуровневых ошибок, а также, фиксация в логе фактов, когда операция выполняется долго.

Включается: Отладочные логи\Опции\Операции со звуковой картой.

Зависит от: Отладочные логи\Опции\Писать время операции со звуковой картой, если оно больше (ms)

Обычной записью является название выполняемой операции и ее результат и время выполнения. По умолчанию, отсечка записи о времени выполнения равна 50 мс.

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

Пример:

  • Операция открытия звуковой карты Realtek HD Audio output выполнялась 63 мс.
00000E7C @ 29-10-2010, 18:21:53.490 @  @ WAVE_IO @ waveOutOpen @        63 : WAVE: Realtek HD Audio output 
  • Отправка звукового буфера в карту Livewire In 03 (AXIA IP-Driver завершилась с ошибкой. Код ошибки = 6 (код отображается 16-ричной системе счисления).
00000458 @ 14-12-2010, 18:49:37.555 @  @ WAVE_io @ waveInAddBuffer @         0 : WAVE: Livewire In 03 (AXIA IP-Driver
ERR=6h @ ADEV_WAVE:WAVE: Livewire In 03 (AXIA IP-Driver


Описание кода ошибки можно найти тут.

OPEN_AHEAD. Предзагрузка расписаний.

Записи данного типа относятся к системе предзагрузки расписаний

Включается: Отладочные логи\Опции\Предзагрузка расписаний. По умолчанию - включено.

  • Prepare
    Говорит о факте смены/применения настроек. В логе предвараятся всеми, загружаемыми на момент смены настроек, расписаниями.
  • Opened, Empty
    Записи в процессе Prepare. Empty - расписание пока пустое, Opened - уже загруженное
  • Read completed
    Запись о том, что раписание было успешно считано.
  • Close
    Расписание былот зкрыто по причине его устаревания
  • Missed schedule
    Ошибка. Считанное расписание не найдено. Не должно возникать.
  • Already exist
    Ошибка. Расписание неожиданно оказалось уже считанным. Не должно возникать.

RETR. Плеер 777 Изменение состояния ретрансляции

При переходе плеера в режим ретрансляции в лог вносится запись вида

00000DB8 @ 02-02-2015, 13:28:02.941 @  @ RETR @ RETR_ON @ Reason: Process(1) Last item in player finished @ Main

При завершении ретрансляции в лог вносится запись вида:

00000DB8 @ 02-02-2015, 13:28:03.878 @  @ RETR @ RETR_OFF @ Reason: PlayPtr(0), DoOnBtnRetr(from_pattern=0), PressBtnRetr, ProcessKey @ Main

В теле сообщения указывается причина перехода на ретрансляцию или возврата.

Переход Сообщение Пояснения
RETR_ON Process(1) Last item in player finished Очередь воспроизведения в плеере закончилась
RETR_ON Process(2) Signal OK Восстановился сигнал в ретранслиуемом канало
RETR_OFF Process(3) No signal Пропал сигнал в ретранслируемом канале
RETR_OFF PlayPtr(0), DoOnBtnRetr(from_pattern=0), PressBtnRetr Запущено воспроизведение плеера по команде оператора

DJINFS. Сообщения файловой системы в отладочном логе

Логгирование файловых операций заносит в отладочный лог записи примерно такого вида:

000025CC @ 25-03-2015, 19:05:38.821 @  @ DJINFS @ implLocalFS::OpenFile @ (FS::GetLastWriteTime): File='e:\_gin-o-drom\root_2.16_video\ShPar.ini' Access=0h ShareMode=3h Disp=3h FlagsAttrs=20000080h timeout=0 oflags=Ch SysErrorCode=0(Операция успешно завершена.  ) handle=00001F9Ch index=7 duration=2668 millisecs @ SH_PARAM_FILE_FileWatcher

или

000026F4 @ 25-03-2015, 17:28:00.928 @  @ DJINFS @ implLocalFS::OpenFile @ (FILE_CONTAINER::OpenFile): File='e:\_gin-o-drom\root_2.16_video\init_connect.sql' Access=80000000h ShareMode=1h Disp=3h FlagsAttrs=80h timeout=0 oflags=Eh SysErrorCode=2(Не удается найти указанный файл.  ) duration=0 millisecs @ Main

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

000026F4 @ 25-03-2015, 17:27:53.708 @  @ DJINFS @ implFS::implFS @ root file system object has been created @ 
000026F4 @ 25-03-2015, 17:27:53.708 @  @ DJINFS @ implLocalFS::implLocalFS @ file system object has been created: access via Win32 API @

Управление

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

- "Операции DJinFS"
- "Записывать в лог ‘время выполнения операции с файлом’ только если оно больше (ms)"
Сообщения об ошибках выполнения файловых операций в лог попадают всегда. Также, сообщения попадают в лог всегда, когда их длительность выполнения превосходит значение, заданное второй опцией из перечисленных выше. Для остальных вызовов файловых операций (т.е. окончившихся успехом и не превысивших указанную длительность) первый параметр задаёт уровень логгирования: если логгирование операции разрешено, то сообщение попадает в отладочный лог. Включив самый верхний уровень, можно увидеть вообще всю работу Джина с файлами. На самом нижнем уровне в логе будут только сообщения об ошибках. Нижний уровень включен по умолчанию.

Опции

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

00002210 @ 16-05-2014, 18:33:07.690 @  @ Create_File @ ScanFolder @ ERR=        3: E:\tmp\logger014-05-17\??-??-??.mp? @ Main
00002950 @ 06-06-2014, 16:34:47.503 @  @ Create_File @ BuildInterface @    143932 : 'D:\_media\base\audio\TPR_DJin\Astor Piazzolla (long).tpr' CH=-1 @ CAF_CONVERTDlg
000028AC @ 06-06-2014, 14:46:38.071 @  @ Create_File @ GetLastWriteTime @       635 : 'D:\temp\xxx\Dude.mp3'  SUCCESS @ CAF_CONVERTDlg

Вложенные страницы

Add picture from clipboard (Maximum size: 742 MB)