powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Логирование сервиса
12 сообщений из 12, страница 1 из 1
Логирование сервиса
    #39524040
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Пишу службу, не могу никак разобраться с логированием.
Сейчас приведу простенький пример:

Создал mc файл вида:

MessageIdTypedef=DWORD
LanguageNames=(Russian=0x419:MSG00419)
MessageId=0x1
Language=Russian
%1
.

скомпилировал res файл и присоединил к проекту.

Из службы вызываю
Код: pascal
1.
LogMessage('TestEvent', EVENTLOG_SUCCESS, 0, 1);



Служба лежит на C:\1\Project1.exe

В HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Service1 добавил:
EventMessageFile = C:\1\Project1.exe
TypesSupported = 7

Устанавливаю службу запускаю, в журнал windows добавляется запись но не так как ожидалось:


Не удается найти описание для идентификатора события 1 из источника Service1. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере.

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

К событию были добавлены следующие сведения:

TestEvent

ресурс сообщения существует, но сообщение не найдено в таблице строк и таблице сообщений

Как с этим бороться?
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524044
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovКак с этим бороться?

A rc с каким типом создал?
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524046
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Avenger__,

mc -a -U msg.mc

rc -r msg.rc
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524048
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipov__Avenger__,

mc -a -U msg.mc

rc -r msg.rc

Ну так msg.rc какой тип стоит внутри?
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524050
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Avenger__,

LANGUAGE 0x9,0x1
1 11 "MSG00409.bin"
LANGUAGE 0x19,0x1
1 11 "MSG00419.bin"
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524051
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipov__Avenger__,

LANGUAGE 0x9,0x1
1 11 "MSG00409.bin"
LANGUAGE 0x19,0x1
1 11 "MSG00419.bin"

У меня несколько отличается регистрация в реестре:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    if OpenKey('SYSTEM\CurrentControlSet\Services\EventLog\Application\' + Name, True) then
    try
      WriteString('CategoryMessageFile', APathSelf);
      WriteString('EventMessageFile', APathSelf);
      WriteInteger('CategoryCount', 2); // Максимальное количество категорий
      WriteInteger('TypesSupported',
        EVENTLOG_SUCCESS or EVENTLOG_ERROR_TYPE or
        EVENTLOG_WARNING_TYPE or EVENTLOG_INFORMATION_TYPE);
    finally
      CloseKey;
    end;



и сам mc файл:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
;
MessageId=0
Language=English
%1
.
MessageId=1
Language=English
Base 
.



И все работает. Запускаю примерно так:
Код: pascal
1.
2.
3.
    Self.LogMessage(Format('[%s(0x%p)] %s', [
      ClassName, Pointer(Self), AMsg
    ]), EVENTLOG_ERROR_TYPE, 1, 0);



А имя сервиса service.Name точно Service1?
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524052
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Avenger__
У меня несколько отличается регистрация в реестре:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    if OpenKey('SYSTEM\CurrentControlSet\Services\EventLog\Application\' + Name, True) then
    try
      WriteString('CategoryMessageFile', APathSelf);
      WriteString('EventMessageFile', APathSelf);
      WriteInteger('CategoryCount', 2); // Максимальное количество категорий
      WriteInteger('TypesSupported',
        EVENTLOG_SUCCESS or EVENTLOG_ERROR_TYPE or
        EVENTLOG_WARNING_TYPE or EVENTLOG_INFORMATION_TYPE);
    finally
      CloseKey;
    end;




ну отличие фактически только в значении TypesSupported, а CategoryCount и CategoryMessageFile насколько мне известно необязательные параметры.

__Avenger__
А имя сервиса service.Name точно Service1?

точно
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524070
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идентификатор, вероятно, не правильно указан. Должен быть полным. Примерно вида $C002XXXX (если severity = error, а facility = runtime), где XXXX - это ваша 1, 2 и т.д.

Посмотрите в выходных файлах (заголовочники) там константа для сообщений указывается.

Можно ещё вот тут почитать: http://www.eurekalog.com/help/eurekalog/system_logging_setup.php
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524387
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovВ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Service1 добавил:После этого компьютер или службу EventLog перезапустили?
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524486
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

После перезапуска Журнал событий:

Не удается найти описание для идентификатора события 1 из источника Service1. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере.

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

К событию были добавлены следующие сведения:

TestEvent

Неверный дескриптор
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524911
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос остается открытым
...
Рейтинг: 0 / 0
Логирование сервиса
    #39524933
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге попробовал rc присоединить к проекту чтобы он сам файл ресурсов сгенерировал, перезапустил службы теперь отображается нормально
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Логирование сервиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]