TEventLog не пишет в системный журнал

Я использую Free Pascal (Lazarus) для разработки простого серверного демона. Проблема, с которой я сталкиваюсь, заключается в том, что компонент TEventLog не записывает в системный журнал.

Я использую следующий код:

  EventLog1.LogType := ltSystem;
  EventLog1.Active := True;
  EventLog1.Log('Application has started!');

Вместо записи в системный журнал он создает файл с именем в качестве исполняемого файла и записывает туда. Есть ли другой способ, которым я могу записать в системный журнал? Является openlog определены в любой единице, которую я могу использовать?

1 ответ

(Предполагается, что вы используете *nix и самую последнюю версию 2.6.2).

Нет, функции libc log* кажутся только объявленными в реализации eventlog. Возможно, они находятся в модуле libc, но это в основном не поддерживается, и только в linux/32bit.

Проверьте некоторые предположения:

  1. Активно false перед установкой logtype, иначе active:=true может не перепроверить его.
  2. Вы хотите написать системный журнал, достаточно ли у вас прав для этого?
  3. Вы видите что-нибудь со strace/ktrace/truss?
Другие вопросы по тегам