daroczig / logger

A lightweight, modern and flexible, log4j and futile.logger inspired logging utility for R
https://daroczig.github.io/logger
249 stars 38 forks source link

FR: print and as.character methods? #152

Open r2evans opened 3 months ago

r2evans commented 3 months ago

As I was thinking about the recent comment in #26, I wonder if there could be convenience in having print and as.character S3 methods for the return value to facilitate the nested use.

library(logger)
logged <- log_info("test")
# INFO [2024-04-09 09:20:45] test
class(logged)
# [1] "list"
class(logged) <- c("logger", "list")
print.logger <- function(x, ..., index = 1) print.default(unname(x[[index]]$record), ...)
as.character.logger <- function(x, ..., index = 1) unname(x[[index]]$record)
logged
# [1] "INFO [2024-04-09 09:20:45] test"
jsonlite::toJSON(as.character(logged))
# ["INFO [2024-04-09 09:20:45] test"] 

Thoughts? They're effectively "free" and come closer to my original thoughts when suggesting pass-through.