add homekeeper stack
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
.log_env <- new.env(parent = emptyenv())
|
||||
.log_env$file <- NULL
|
||||
|
||||
log_init <- function() {
|
||||
log_dir <- Sys.getenv("LOG_DIR", "/logs")
|
||||
if (!dir.exists(log_dir))
|
||||
dir.create(log_dir, recursive = TRUE, showWarnings = FALSE)
|
||||
fname <- paste0(format(Sys.Date(), "%Y-%m-%d"), "_log.jsonl")
|
||||
.log_env$file <- file.path(log_dir, fname)
|
||||
|
||||
v <- tryCatch(
|
||||
as.character(utils::packageVersion("listkeeper")),
|
||||
error = function(e) "unknown"
|
||||
)
|
||||
.log_write("INFO", "startup",
|
||||
version = v,
|
||||
r_version = paste(R.version$major, R.version$minor, sep = "."),
|
||||
platform = R.version$platform,
|
||||
api_url = Sys.getenv("API_URL", "http://localhost:8000")
|
||||
)
|
||||
}
|
||||
|
||||
.log_write <- function(level, msg, ...) {
|
||||
if (is.null(.log_env$file)) return(invisible(NULL))
|
||||
entry <- c(
|
||||
list(ts = format(Sys.time(), "%Y-%m-%dT%H:%M:%OS3"), level = level, msg = msg),
|
||||
list(...)
|
||||
)
|
||||
line <- jsonlite::toJSON(entry, auto_unbox = TRUE)
|
||||
cat(line, "\n", file = .log_env$file, append = TRUE, sep = "")
|
||||
invisible(NULL)
|
||||
}
|
||||
|
||||
log_info <- function(msg, ...) .log_write("INFO", msg, ...)
|
||||
log_debug <- function(msg, ...) .log_write("DEBUG", msg, ...)
|
||||
log_error <- function(msg, ...) .log_write("ERROR", msg, ...)
|
||||
Reference in New Issue
Block a user