diff options
Diffstat (limited to 'examples/Log_Msg/test_log_msg.cpp')
-rw-r--r-- | examples/Log_Msg/test_log_msg.cpp | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/examples/Log_Msg/test_log_msg.cpp b/examples/Log_Msg/test_log_msg.cpp new file mode 100644 index 00000000000..1f93dcc20b0 --- /dev/null +++ b/examples/Log_Msg/test_log_msg.cpp @@ -0,0 +1,105 @@ +// Test the Log_Msg abstraction. +// @(#)test_log_msg.cpp 1.1 10/18/96 + + +#include "ace/Log_Msg.h" + +static void +cleanup (void) +{ + ACE_DEBUG ((LM_INFO, "leaving (%P)!\n")); +} + +static void +cause_error (void) +{ + errno = EWOULDBLOCK; + ACE_ERROR ((LM_DEBUG, "would block\n")); +} + +int +main (int argc, char *argv[]) +{ + // Note that the default behavior is to log to STDERR... + + if (argc > 1) + { + if (ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::OSTREAM) == -1) + ACE_ERROR ((LM_ERROR, "cannot open logger!!!\n")); + + cause_error (); + // Check to see what happened. + if (ACE_LOG_MSG->op_status () == -1 + && ACE_LOG_MSG->errnum () == EWOULDBLOCK) + ACE_DEBUG ((LM_DEBUG, "op_status and errnum work!\n")); + else + ACE_ERROR ((LM_ERROR, "op_status and errnum failed!\n")); + } + else + { + if (ACE_LOG_MSG->open (argv[0]) == -1) + ACE_ERROR ((LM_ERROR, "cannot open logger!!!\n")); + + cause_error (); + + // Check to see what happened. + if (ACE_LOG_MSG->op_status () == -1 + && ACE_LOG_MSG->errnum () == EWOULDBLOCK) + ACE_DEBUG ((LM_DEBUG, "op_status and errnum work!\n")); + else + ACE_ERROR ((LM_ERROR, "op_status and errnum failed!\n")); + + // Exercise many different combinations of STDERR and OSTREAM. + + ACE_DEBUG ((LM_INFO, "%f, %*s%s = %d\n", + 3.1416, 8, "", "hello", 10000)); + + ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM); + ACE_LOG_MSG->msg_ostream (&cout); + + ACE_DEBUG ((LM_INFO, "%f, %*s%s = %d\n", + 3.1416 * 3.1416, 8, "", "world", 20000)); + + ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR); + + ACE_DEBUG ((LM_INFO, "%f, %*s%s = %d\n", + 3.1416 * 3.1416, 8, "", "world", 20000)); + + ACE_LOG_MSG->msg_ostream (0); + + ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR); + + ACE_DEBUG ((LM_INFO, "%f, %*s%s = %d\n", + 3.1416 * 3.1416, 8, "", "world", 20000)); + + ACE_LOG_MSG->clr_flags (ACE_Log_Msg::OSTREAM); + ACE_LOG_MSG->msg_ostream (&cerr); + + ACE_DEBUG ((LM_INFO, "%f, %*s%s = %d\n", + 3.1416 * 3.1416, 8, "", "world", 20000)); + + static int array[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048}; + + // Print out the binary bytes of the array in hex form. + ACE_LOG_MSG->log_hexdump (LM_DEBUG, (char *) array, sizeof array); + + // Disable the LM_DEBUG and LM_INFO messages. + int priority_mask = ACE_LOG_MSG->priority_mask (); + ACE_CLR_BITS (priority_mask, LM_DEBUG | LM_INFO); + ACE_LOG_MSG->priority_mask (priority_mask); + + ACE_DEBUG ((LM_INFO, "This LM_INFO message should not print!\n")); + ACE_DEBUG ((LM_DEBUG, "This LM_DEBUG message should not print!\n")); + + char *badname = "badname"; + + char *l_argv[2]; + l_argv[0] = badname; + l_argv[1] = 0; + + if (ACE_OS::execv (badname, l_argv) == -1) + ACE_ERROR ((LM_ERROR, "%n: (%x), %p%r%a\n", + 10000, badname, cleanup, 1)); + } + return 0; +} |