Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Логирование сервиса / 12 сообщений из 12, страница 1 из 1
20.09.2017, 21:30:00
    #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
20.09.2017, 22:14:06
    #39524044
__Avenger__
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование сервиса
RuslanSharipovКак с этим бороться?

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

mc -a -U msg.mc

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

mc -a -U msg.mc

rc -r msg.rc

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

LANGUAGE 0x9,0x1
1 11 "MSG00409.bin"
LANGUAGE 0x19,0x1
1 11 "MSG00419.bin"
...
Рейтинг: 0 / 0
20.09.2017, 22:32:05
    #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
20.09.2017, 22:42:01
    #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
21.09.2017, 01:47:04
    #39524070
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логирование сервиса
Идентификатор, вероятно, не правильно указан. Должен быть полным. Примерно вида $C002XXXX (если severity = error, а facility = runtime), где XXXX - это ваша 1, 2 и т.д.

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

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

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

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

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

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

TestEvent

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


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