#include #include #include #include #include #include "tlog.hpp" std::ofstream tlog_stream( "tlog.xml" ); tlog::logger* main_logger; // std::string to_string( int n ) { std::ostringstream ostr; ostr << n; return ostr.str(); } void doSubtask1( int n ) { TLOG_INFO( *main_logger, "subtask 1 with " + to_string( n ) ); // do something } void doSubtask2( int n ) { TLOG_INFO( *main_logger, "subtask 2 with " + to_string( n ) ); // do something } void doSubtask3( int n ) { TLOG_WARNING( *main_logger, "subtask 3 with " + to_string( n ) + " ! " ); // do something } void doSubtask4( int n ) { TLOG_INFO( *main_logger, "subtask 4 with " + to_string( n ) ); // do something } void doSubtask5( int n ) { TLOG_INFO( *main_logger, "subtask 5 with " + to_string( n ) ); // do something } void doSomeTask( int n ) { TLOG_SCOPED_NODE( *main_logger, "task with " + to_string( n ) ); if ( n % 1 == 0 ) doSubtask1( n ); if ( n % 2 == 0 ) doSubtask2( n ); if ( n % 3 == 0 ) doSubtask3( n ); if ( n % 4 == 0 ) doSubtask4( n ); if ( n % 5 == 0 ) doSubtask5( n ); } int main() { tlog::logger main_logger_object( &tlog_stream ); main_logger = &main_logger_object; srand( (unsigned)time( 0 ) ); for ( int t = 1; t <= 10; ++t ) { TLOG_SCOPED_NODE( *main_logger, "test " + to_string( t ) ); int a = rand() % 1000; int b = a + rand() % 10; TLOG_INFO( *main_logger, "range [" + to_string( a ) + ", " + to_string( b ) + "]" ); for ( int i = a; i <= b; ++i ) doSomeTask( i ); } return 0; }