

This directory contains program(s) that demonstrate how to use ACE's
Log_Msg class to record various information.

        * test_callback.cpp: This program tests the Log_Msg
          abstraction wrt writing to user defined callback objects.

        * test_ostream.cpp: This program illustrates how the
          ACE_Log_Msg abstraction can be used to write to
          stderr and to a file.  For even more sophisticated
          use-cases of ACE_Log_Msg please see the
          $ACE_ROOT/netsvcs/clients/Logger/ examples.

  * test_log_msg.cpp: This program tests various feature of the
          Log_Msg facility.  It opens a log file and writes some
          messages using different log priorities and output stream.

    You can invoke the program with or without command
    parameters.  When invoked with any parameters like,

    ./Log_Msg foobar

    the log messages are direct to stdout (or, ostream in C++.)
    In this case, the program simulates an error EWOULDBLOCK and
    write an error log to stdout as,

    would block
    op_status and errnum work!

    When invoked without any parameters, except does the same
    test as above but logs to default log stream "stderr," the
    program also demonstrates logging messages/errors with
    different priority and changing the logging destination.  A
    sample output is,

      would block
      op_status and errnum work!
        3.141600,         hello = 10000
        6.283200,         world = 20000
        6.283200,         world = 20000
        9.424800,         world = 30000
      12.566400,         world = 40000
      15.708000,         world = 50000
      HEXDUMP 48 bytes
      01 00 00 00 02 00 00 00  04 00 00 00 08 00 00 00   ................
      10 00 00 00 20 00 00 00  40 00 00 00 80 00 00 00   .... ...@.......
      00 01 00 00 00 02 00 00  00 04 00 00 00 08 00 00   ................
      ./Log_Msg.EXE: (2710), badname: Function not implemented

    In this test, there are two lines containing "world` =
    20000."  That's because in the program, both stderr and
    stdout are "turned on" for logging before writing this log
    message.  The line containing "world = 30000" is written to
    stdout only.  Rest of the lines are all to the stderr.  You
    can examine this behavior by redirecting stderr and stdout
    to different files.

    The HEXDUMP output shows how to take an arbitrary object and
    hexdump its content for debugging.  Finally, the program
    shows an ordinary use case of logging error messages using
    the ACE_ERROR macro.

    If you look into the program, there is also a demonstration
    showing how to disable certain priorities of error message
    temporarily.

