C ++ - 如何写入Apache模块中的文件?

时间:2017-11-26 13:21:18

标签: c++ apache apache2 writetofile apache-modules

我在C++Ubuntu 16.04)中有Apache HTTP Server module的以下代码。

我想将一些调试写入日志(使用std::ofstream),但我没有看到任何内容。无论是日志还是文件。

我还尝试使用apache已经在http_log.h上拥有的多个日志例程之一,例如ap_log_pid下面的例程,但我看不到任何内容。

如何在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
};

0 个答案:

没有答案