int main( int argc, char * argv[] ) { Log log( "App.log", LogLevel::All ); LogIf( log, LogLevel::Info ) << "This is an info entry." << endl; log.tee( cerr ); LogIf( log, LogLevel::Error ) << "This is an error entry" << endl; log << "This is more of the same error entry" << endl; return( 0 ); }
void TestLogMacro(LogMacroType logType, unsigned long logLevel) { std::string inputlog = std::to_string(logLevel)+"logmacrotest"+std::to_string(logLevel); switch (logType) { case IF: { LogIf(false, logLevel, test_log); EXPECT_EQ(0, test_count); LogIf(true, logLevel, test_log); EXPECT_EQ(1, test_count); LogIf(false, logLevel, test_log); EXPECT_EQ(1, test_count); LogIf(true, logLevel, inputlog); EXPECT_EQ(2, test_count); EXPECT_NE(std::string::npos, test_log.find(inputlog)); break; } case EVERY_N: { LoglogN(logLevel, inputlog); EXPECT_EQ(logLevel, test_level); EXPECT_NE(std::string::npos, test_log.find(inputlog)); LoglogN(logLevel, inputlog); EXPECT_EQ(1, test_count); LoglogN(logLevel, inputlog); EXPECT_EQ(2, test_count); break; } case IF_EVERY_N: { LogIflogN(true, logLevel, inputlog); EXPECT_EQ(logLevel, test_level); EXPECT_NE(std::string::npos, test_log.find(inputlog)); LogIflogN(true, logLevel, inputlog); EXPECT_EQ(1, test_count); LogIflogN(true, logLevel, inputlog); EXPECT_EQ(2, test_count); std::string notexistLog = inputlog+"notexist"; LogIflogN(false, logLevel, notexistLog); EXPECT_EQ(std::string::npos, test_log.find("notexist")); EXPECT_EQ(2, test_count); break; } case FIRST_N: { LogFirstN(logLevel, inputlog); EXPECT_EQ(logLevel, test_level); EXPECT_NE(std::string::npos, test_log.find(inputlog)); LogFirstN(logLevel, inputlog); EXPECT_EQ(2, test_count); LogFirstN(logLevel, inputlog); EXPECT_EQ(2, test_count); break; } case IF_EX: { LogIf_EX(false, logLevel, test_log); EXPECT_EQ(0, test_count); LogIf_EX(true, logLevel, test_log); EXPECT_EQ(1, test_count); EXPECT_NE(std::string::npos, test_log.find(exModule)); LogIf_EX(false, logLevel, test_log); EXPECT_EQ(1, test_count); LogIf_EX(true, logLevel, inputlog); EXPECT_EQ(2, test_count); EXPECT_NE(std::string::npos, test_log.find(inputlog)); break; } case EVERY_N_EX: { LoglogN_EX(logLevel, inputlog); EXPECT_EQ(logLevel, test_level); EXPECT_NE(std::string::npos, test_log.find(inputlog)); LoglogN_EX(logLevel, inputlog); EXPECT_EQ(1, test_count); EXPECT_NE(std::string::npos, test_log.find(exModule)); LoglogN_EX(logLevel, inputlog); EXPECT_EQ(2, test_count); break; } case IF_EVERY_N_EX: { LogIflogN_EX(true, logLevel, inputlog); EXPECT_EQ(logLevel, test_level); EXPECT_NE(std::string::npos, test_log.find(inputlog)); LogIflogN_EX(true, logLevel, inputlog); EXPECT_EQ(1, test_count); EXPECT_NE(std::string::npos, test_log.find(exModule)); LogIflogN_EX(true, logLevel, inputlog); EXPECT_EQ(2, test_count); std::string notexistLog = inputlog+"notexist"; LogIflogN_EX(false, logLevel, notexistLog); EXPECT_EQ(std::string::npos, test_log.find("notexist")); EXPECT_EQ(2, test_count); break; } case FIRST_N_EX: { LogFirstN_EX(logLevel, inputlog); EXPECT_EQ(logLevel, test_level); EXPECT_NE(std::string::npos, test_log.find(inputlog)); EXPECT_NE(std::string::npos, test_log.find(exModule)); LogFirstN_EX(logLevel, inputlog); EXPECT_EQ(2, test_count); LogFirstN_EX(logLevel, inputlog); EXPECT_EQ(2, test_count); break; } } }