1. 04 Feb, 2009 1 commit
    • Steven Murray's avatar
      Added the CASTOR_DLF_WRITEPC macro. · b63bb04d
      Steven Murray authored
      This macro should be used when it is desirable to include the file, line and
      function context information in a log.  It is advised to include such
      information when logging an error for the developers, but not to use it for
      monitoring logs where operators are informed of what is happening and they do
      not need or want to know the details of the source code.
      
      The CASTOR_DLF_WRITEPC macro macro generates the file, line and function
      context information automatically and passes it on down the DLF logging chain.
      This means developers do not need to use the __FILE__, __LINE__,
      __PRETTY_FUNCTION__ macros in their application code when logging.  Here is an
      example of using this macro:
      
        try {
          ...
        } catch(castor::exception::Exception &ex) {
          castor::dlf::Param params[] = {
            castor::dlf::Param("volReqId", vdqmJobRequest.tapeRequestId),
            castor::dlf::Param("Message" , ex.getMessage().str()       ),
            castor::dlf::Param("Code"    , ex.code()                   )};
          CASTOR_DLF_WRITEPC(cuuid, DLF_LVL_ERROR, AGGREGATOR_MAIN_SELECT_FAILED,
            params);
        }
      b63bb04d
  2. 03 Feb, 2009 5 commits
  3. 02 Feb, 2009 5 commits
  4. 31 Jan, 2009 1 commit
    • Steven Murray's avatar
      Added the following C++ template wrapper around the castor::dlf::dlf_writep · 624b0397
      Steven Murray authored
      function in order to allow developers to call the function without the need to
      specify the size of the params array:
      
          template<int n>
            void dlf_writep (Cuuid_t uuid,
                             int severity,
                             int message_no,
                             castor::dlf::Param (&params)[n],
                             struct Cns_fileid *ns_invariant = 0) throw() {
            dlf_writep(uuid, severity, message_no, n, params, 0);
          }
      
      The template causes the size of the array to be determied at compile time.  A
      pointer to castor::dlf::Param will of course not work.  The original
      castor::dlf::dlf_writep function can be used as usual in this case.
      
      The following code snippet shows an example of using the new template:
      
        castor::dlf::Param params[] = {
          castor::dlf::Param("volReqId", vdqmJobRequest.tapeRequestId),
          castor::dlf::Param("vid"     , request.vid                 ),
          castor::dlf::Param("vsn"     , request.vsn                 ),
          castor::dlf::Param("label"   , request.label               ),
          castor::dlf::Param("devtype" , request.devtype             ),
          castor::dlf::Param("density" , request.density             )};
              castor::dlf::dlf_writep(cuuid, DLF_LVL_SYSTEM,
                AGGREGATOR_GAVE_VOLUME_INFO, params);
      624b0397
  5. 30 Jan, 2009 6 commits
  6. 29 Jan, 2009 4 commits
  7. 28 Jan, 2009 5 commits
  8. 27 Jan, 2009 8 commits
  9. 26 Jan, 2009 5 commits