Microsoft の Common Log File System (CLFS) API を使用しようとしています。私のコードは次のようになります。
CLFS_MGMT_POLICY log_policy;
CLFS_INFORMATION log_info;
ULONG info_size = sizeof (log_info);
ULONGLONG desired_size;
ULONGLONG resulting_size;
data->log_handle = CreateLogFile (
helpers::towstring (data->log_name).c_str (), GENERIC_WRITE,
FILE_SHARE_DELETE | FILE_SHARE_WRITE | FILE_SHARE_READ, 0,
OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE);
if (data->log_handle == INVALID_HANDLE_VALUE)
{
loglog_win32_error (LOG4CPLUS_TEXT ("CreateLogFile()"));
goto error;
}
if (! RegisterManageableLogClient (data->log_handle, 0))
{
loglog_win32_error (LOG4CPLUS_TEXT ("RegisterManageableLogClient()"));
goto error;
}
関数は正常に実行され、ファイル システムにファイルが表示されるCreateLogFile()
ことさえ確認できます。.blf
しかしRegisterManageableLogClient()
、エラーで戻り、 「アクセスが拒否されました」というGetLastError()
値を返します。このコードは、MSDN の例5
とほぼ同じです。
呼び出しがRegisterManageableLogClient()
失敗する理由がわかりません。
アップデート:
の問題が見つかりませんGENERIC_READ
でしCreateLogFile()
た。