--- title: "Logging" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{logging} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) knitr::opts_knit$set(root.dir = tempdir()) ``` ```{r setup} library(ptspotter) ``` ## Logging with 'log4r' Logging is an excellent way to monitor the status of your data pipelines. Please consult the ['log4r' documentation ](https://CRAN.R-project.org/package=log4r) for a comprehensive guide to its features. ## Logging File Operations In order to quickly get up and running with 'log4r', there are a few steps to take first. A directory and a logfile are required. ```{r} log_file_ops(dir_path = "logs", logfile_nm = "logfile") list.files("logs") ``` This will only need to be executed once. Running this line again will throw an error. ```{r, error=TRUE} log_file_ops(dir_path = "logs", logfile_nm = "logfile") ``` ## Logger Objects Next we need to create the required objects within R to be able to write to the logfile we created. Namely, a **file appender** and **logger** objects are needed. This needs to be executed every time you run your programme, so include it within your script. ```{r} log_enable(logfile_loc = "logs/logfile.txt") ``` ## Start Logging We can now use the logging functions in 'log4r' to begin writing messages to the logfile. ```{r} log4r::info(logger = my_logger, message = "Some info") log4r::warn(logger = my_logger, message = "Some warning") log4r::error(logger = my_logger, message = "Some error") # Check the messages are being logged readLines("logs/logfile.txt") ``` ```{r, include=FALSE} unlink("logs", recursive = TRUE) ```