[pgrouting-dev] New logger for C/C++ for pgrouting

Hi Devs,

I have created a new very simple header file at:

pgrouting/src/common/src/pgr_logger.h

The goal for this is to provide a consistent way for adding debug messages to the C/C++ that get directed to a log file. There is a define that can be used to globally disable the logging on a per file basis.

I looked at a lot of other loggers for C/C++ but this seems to be good for our modest needs and it is easy to disable when we are ready to deploy it.

Let me know you thoughts and please use it for the C++ code. You can also use this for the C code, but most of the C code already is using postgresql elog() function to send NOTICE statements back to the client.

Thanks,
   -Steve

READ the header file it has documentation in it.

     USAGE:

     #define LOGGERR_ON
     #undef LOGGER_ON // turn off logging for production

     // override the default log file "/tmp/pgr_logger.log"
     #define LOGGER_FILE "mylogger.log"

     #undef LOGGER_LOC // dont log filename and line number
     #define LOGGER_LOC // log filename and line number with log message

     // include the logger macros and configure based on defines above
     #include pgr_logger.h

     // log a message to the log file
     LOG(format, args)
     LOG("%s at %d\n", "this is a message", time())

     This will log something like:

     myfile:123: this is a message at 1399216875

Hi Devs,

Update the pgr_logger.h and added PGR_ prefix to all the macros to avoid potential confusion. I also updated the vrp_basic cpp code to use the new logging facility.

Here is the updated documentation:

     USAGE:

     #define PGR_LOGGERR_ON
     #undef PGR_LOGGER_ON // turn off logging for production

     // override the default log file "/tmp/pgr_logger.log"
     #define PGR_LOGGER_FILE "mylogger.log"

     #undef PGR_LOGGER_LOC // dont log filename and line number
     #define PGR_LOGGER_LOC // log filename and line number with log message

     // include the logger macros and configure based on defines above
     #include pgr_logger.h

     // log a message to the log file
     PGR_LOGF(format, args);
     PGR_LOGF("%s at %d\n", "this is a message", time());
     PGR_LOG("just print a string to the log");

     This will log something like:

     myfile.cpp:123: this is a message at 1399216875
     myfile.cpp:124: just print a string to the log

-Steve

On 5/4/2014 2:06 PM, Stephen Woodbridge wrote:

Hi Devs,

I have created a new very simple header file at:

pgrouting/src/common/src/pgr_logger.h

The goal for this is to provide a consistent way for adding debug
messages to the C/C++ that get directed to a log file. There is a define
that can be used to globally disable the logging on a per file basis.

I looked at a lot of other loggers for C/C++ but this seems to be good
for our modest needs and it is easy to disable when we are ready to
deploy it.

Let me know you thoughts and please use it for the C++ code. You can
also use this for the C code, but most of the C code already is using
postgresql elog() function to send NOTICE statements back to the client.

Thanks,
   -Steve

READ the header file it has documentation in it.

     USAGE:

     #define LOGGERR_ON
     #undef LOGGER_ON // turn off logging for production

     // override the default log file "/tmp/pgr_logger.log"
     #define LOGGER_FILE "mylogger.log"

     #undef LOGGER_LOC // dont log filename and line number
     #define LOGGER_LOC // log filename and line number with log message

     // include the logger macros and configure based on defines above
     #include pgr_logger.h

     // log a message to the log file
     LOG(format, args)
     LOG("%s at %d\n", "this is a message", time())

     This will log something like:

     myfile:123: this is a message at 1399216875

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev