Как остановить запись w t C++ в стандартный вывод (консоль)
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 made up argument
3 ответа
Все, что выводится регистратором Wt, записывается в файл журнала, настроенный в вашей конфигурации. Самый короткий файл конфигурации, который перенаправляет запись в файл, будет следующим:
<server>
<application-settings location="*">
<log-file>/path/to/logfile</log-file>
</application-settings>
</server>
Есть одно исключение: Wt::Dbo часто входит в stderr. Мы (разработчики Wt) можем изменить это в будущем, чтобы сделать его немного более настраиваемым.
В вашем примере кода будет настроен только один конкретный экземпляр WLogger, и он не будет работать для регистрации самого Wt, который использует собственный регистратор. Вы можете получить доступ к этому экземпляру с WServer::logger()
,
Там также журнал доступа. Вы можете настроить, куда это идет с --accesslog
вариант.
Если я правильно понял, что вы спрашиваете: вам нужно создать объект типа потока, а затем использовать его следующим образом:
#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;
}
Это, конечно, самые простые вещи. Более подробную информацию можно найти здесь, например.
How to redirect stdout from wt to some file?
Может быть, трубы могут помочь вам