다음 코드는 C++
(Ubuntu 16.04
)에 Apache HTTP Server module
입니다.아파치 모듈에 파일을 쓰는 방법?
로그에 디버그를 쓰고 싶습니다 (std::ofstream
사용).하지만 아무 것도 볼 수 없습니다. 로그 또는 파일이 아닙니다.
나는 또한 아래의 것과 같이 http_log.h
에 아파치가 이미 가지고있는 다중 로그 루틴 중 하나를 사용하려고 시도했지만 아무 것도 쓰여지지 않습니다.
Apache module
의 파일에 디버그 로그를 기록하려면 어떻게해야합니까?
#include <httpd.h>
#include <http_log.h>
#include <http_core.h>
#include <http_protocol.h>
#include <http_request.h>
#include <apr_strings.h>
#include <iostream>
#include <fstream>
void write_something_to_a_file() // <---- DOESN'T WRITE TO FILE!
{
std::ofstream myfile;
myfile.open ("//home//myubuntu//myubuntu//textfile_1.txt");
myfile << "Writing this to a file.\n";
myfile.close();
}
static int myserver_handler(request_rec *r)
{
write_something_to_a_file(); // <-- DOESN'T WORK :(
ap_log_pid(p, "//home//myubuntu//myubuntu//textfile_2.txt"); //<-- DOESN'T WORK
return OK;
}
static void register_hooks(apr_pool_t *pool)
{
ap_hook_handler(myserver_handler, NULL, NULL, APR_HOOK_LAST);
}
module AP_MODULE_DECLARE_DATA myserver_module =
{
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
register_hooks
};
허가 문제 일 수 있습니까? 아파치 서버에 쓰기 권한이있는 다른 위치를 시도 했습니까? – miradham
저는 ISAPI에 대한 경험이 있지만 응용 프로그램을 실행하는 사용자가 언급 된 디렉토리에 쓸 수있는 권한을 가진 한 파일 작성 기능이 완벽하게 작동해야합니다. 이 기본 사용자에게는 보안 문제로 인해 쓰기 권한이 없을 것으로 예상됩니다. –