如何阻止WT C++写入STDUT(控制台) WT是C++框架,它和许多其他框架一样,将事件的结果写入到STDUT AKA控制台。当应用程序的另一端正在使用的内容也写入时,所有这些信息都会杂乱无章,难以阅读。其目的是将所有内容从Wt写入日志文件

如何阻止WT C++写入STDUT(控制台) WT是C++框架,它和许多其他框架一样,将事件的结果写入到STDUT AKA控制台。当应用程序的另一端正在使用的内容也写入时,所有这些信息都会杂乱无章,难以阅读。其目的是将所有内容从Wt写入日志文件,c++,stdout,wt,C++,Stdout,Wt,从源代码中我发现了一些东西: Wt::WLogger logger; logger.setFile("logging_file.txt"); logger.configure("* -debug debug:wthttp"); 然而,我还是没能阻止它写出来。所需要的将是什么样子 Wt::WLogger logger; logger.setFile("logging_file.txt"); logger.configure("-no_std_out"); //this is a m

从源代码中我发现了一些东西:

 Wt::WLogger logger; 
 logger.setFile("logging_file.txt");
 logger.configure("* -debug debug:wthttp");
然而,我还是没能阻止它写出来。所需要的将是什么样子

 Wt::WLogger logger;
 logger.setFile("logging_file.txt");
 logger.configure("-no_std_out"); //this is a made up argument
如何将标准输出从wt重定向到某个文件


也许

如果我正确理解了您的要求:您需要创建一个流类型的对象,然后按如下方式使用它:

#include <iostream>
#include <fstream> // needed for file operation
int main () {
std::ofstream file; 
file.open ("hello.txt");
// now do your calculation, other stuff...
// write to the file
file << "Text here\n";
file.close();
return 0;
}

当然,这是最基本的东西。例如,可以找到更多详细信息。

Wt记录器输出的所有内容都会写入配置中配置的日志文件。将日志重定向到文件的最短配置文件如下:

<server>
    <application-settings location="*">
        <log-file>/path/to/logfile</log-file>
    </application-settings>
</server>
这有一个例外:Wt::Dbo通常会记录到stderr。我们Wt开发人员将来可能会对此进行更改,使其更具可配置性

您的代码示例将只配置一个特定的WLogger实例,而不适用于Wt本身的日志记录,因为Wt使用自己的日志记录程序。您可以使用WServer::logger访问该实例


还有访问日志。您可以使用-accesslog选项来配置它的位置。

您可以更具体一点吗?更具体地说,具体是什么?Wt将事件写入std out aka控制台,例如:127.0.0.1--blabla POST/?等。它可以重定向到文件而不是淹没stdout。谢谢,该日志文件运行良好。但是,是否也可以将GET/POST消息重定向到日志文件?e、 g:127.0.0.1---[2017-Sep-29 11:01:37.664611]获取/?\u=/test HTTP/1.1200 2901这就是我刚才提到的-accesslog选项。只需将该选项提供给所有其他选项(docroot等)旁边的Wt可执行文件。。