Search code examples
rrestrserve

Logging errors with restrserve


I am currently creating a REST API with restrserve. While trying to add a logger to my application I ran into this problem. By setting the log level as: application$logger$set_log_level("error"), my console output on error has a JSON structure like:

{
   "timestamp":"2020-09-22 18:25:37.425642",
   "level":"ERROR",
   "name":"Application",
   "pid":38662,
   "msg":"",
   "context":{
      "request_id":"alphanumeric string",
      "message":{ here is the description of the error  }
   }
}

I set up a printer function following the instructions on the site, but among the available fields (timestamp, level, logger_name, pid, message), "context" is not present,so basically, by just printing the message my logs are empty files. This is my printer function:

application$logger$set_printer(FUN = function(timestamp, level, logger_name, pid, message, ...){
    write(message, file = paste("/Log/Monitor_", pid,
          timestamp, ".txt", sep = ""))
   # attempting to print "context" raises an error!

})

Is there a way to print the "context" field present in the console output to a file?

Thanks in advance, any suggestions would be very helpful


Solution

  • It is always a good idea to take a look to the source. There is extra ... argument where context is passed. Generally it is advisable to use lgr package for user-level logging.