イベントログの書き込み先

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
event

イベントログの書き込み先

#1

投稿記事 by event » 15年前

お世話になります。

C言語で、イベントログにメッセージを出力しようとして
以下の方法で書き込みました。

hEventLog = RegisterEventSource(NULL, exe);
if(hEventLog == NULL){
printf("event log can not open.\n");
return (0);
}

bResult = ReportEvent(
hEventLog,
type,
0,
ID,
NULL,
1,
0,
&module,
NULL);

DeregisterEventSource(hEventLog);


しかし、不思議なことがおきました。
自分のXP端末や、社内のWindowsServer2003などでは、
アプリケーションの種類のイベントログに出力されたのですが、
お客様先のWindowsServer2003で実行したところ、
なぜかシステムの種類のイベントログに出力されてしまいました。

このEXEだけを呼ぶバッチを作り実行したところ、
アプリケーションに出力されるのですが、
他の日次で稼動するバッチに組み込んで実行させたところ
システムに出力されてしまいました。

この、状況によってアプリケーションやシステムに出力される
要因(環境変数?レジストリ?)をご存知の方、ご教示いただけないでしょうか。


よろしくお願いいたします。

シエル

Re:イベントログの書き込み先

#2

投稿記事 by シエル » 15年前

MSDNを覗いてきたら、RegisterEventSourceの第二引数は下記のようになってました。


lpSourceName
登録済みハンドルを取得するイベントソースの名前を表す NULL で終わる文字列へのポインタを指定します。この名前は、レジストリの EventLog キーに登録されているログファイルエントリのサブキーでなければなりません。たとえば、レジストリに次のキーがある場合は、WinApp が有効なイベントログの名前です。
HKEY_LOCAL_MACHINE

System

CurrentControlSet

Services

EventLog

Application

WinApp

Security

System

戻り値



なのでレジストリを覗いてみたら何か分かるかもしれませんよ

閉鎖

“C言語何でも質問掲示板” へ戻る