Стандартный метод ведения журнала (по моему опыту) - это использование потоков stdout или stderr.В C ++, чтобы использовать их, вам нужно будет включить iostream и использовать, как показано ниже:
#include <iostream>
int main(int argc, char* argv[])
{
using std::cout;
using std::cerr;
using std::endl;
cout << "Output message" << endl;
cerr << "Error message" << endl;
}
Это, однако, обеспечивает печать только на те выходные данные, которые обычно заканчиваются на терминале.Если вы хотите использовать эти стандартные потоковые методы (которые вполне читабельны) для вывода в файл, то вам нужно как-то перенаправить вывод.Один из способов сделать это - использовать функцию freopen
, предоставляемую cstdio.Для этого нужно открыть файл и переместить данный поток в этот файл.См. здесь для документации.Примером может быть:
#include <iostream>
#include <cstdio>
int main(int argc, char* argv[])
{
using namespace std;
freopen( "output.txt", "w", stdout );
freopen( "error.txt", "w", stderr );
cout << "Output message" << endl;
cerr << "Error message" << endl;
}
(я изменил на using namespace std;
там только для краткости.)
Вы перемещаете стандартный поток вывода stdout
(который используетсяcout
) в output.txt (в режиме записи), и вы перемещаете stderr
(который используется cerr
) в error.txt также в режиме записи.
Надеемся, что это тактрюк.