From 094bce85d4fdcb2f672cc23cc96738f4f3b97962 Mon Sep 17 00:00:00 2001 From: cebarboza Date: Thu, 4 Jun 2026 20:55:28 +0200 Subject: [PATCH 1/5] logger set --- NAMESPACE | 1 + R/createLogger.R | 78 +++++++++++++++++++++++++++++++++++++++++++++ man/createLogger.Rd | 26 +++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 R/createLogger.R create mode 100644 man/createLogger.Rd diff --git a/NAMESPACE b/NAMESPACE index 629f644..629372b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,6 +2,7 @@ export(arrangeCdmNames) export(assertCdmNames) +export(createLogger) export(createResultsDir) export(getPkgZips) export(unZipStudyFiles) diff --git a/R/createLogger.R b/R/createLogger.R new file mode 100644 index 0000000..0c335bc --- /dev/null +++ b/R/createLogger.R @@ -0,0 +1,78 @@ +#' `createLogger()` as a text file in a results directory +#' +#' @description +#' Sets `ohdsi/ParallelLogger` log and error report for a study +#' +#' +#' @param resultsDir A valid folder where to save the results of a study. +#' This function will work best with the folder structure formed by +#' `createsResultsDir()` +#' @param eventLevel TRACE is the default, captures all the output from +#' the console +#' +#' @returns Invisible +#' @export +#' +#' @examples +#' directories <- createResultsDir() +#' createLogger( +#' resultsDir = directories$resultsDir +#' ) +#' @importFrom checkmate assertDirectoryExists +#' @importFrom ParallelLogger function +createLogger <- function( + resultsDir, + loggerName = "OMOP STUDY", + logFileName = "log.txt", + errorFileName = "error.txt", + eventLevel = "TRACE" + ) { + + checkmate::assertDirectoryExists(resultsDir) + checkmate::assertCharacter(loggerName) + + stopifnot( + "logFileName doesn't have a '.txt' extension" = fs::path_ext( + logFileName + ) == "txt" + ) + stopifnot( + "errorFileName doesn't have a '.txt' extension" = fs::path_ext( + errorFileName + ) == "txt" + ) + stopifnot( + 'eventLevel should be one of: + "TRACE", "DEBUG", "INFO", "WARN", + "ERROR", "FATAL"' = eventLevel %in% c( + "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" + ) + ) + + logFileLocation <- file.path( + resultsDir, + "log.txt" + ) + checkmate::assertDirectoryExists(logFileLocation) + + logger <- ParallelLogger::createLogger( + name = loggerName, + threshold = eventLevel, + appenders = list( + ParallelLogger::createFileAppender( + layout = ParallelLogger::layoutParallel, + fileName = logFileLocation + ) + ) + ) + registerLogger( + logger + ) + + ParallelLogger::logInfo( + glue::glue( + "Logger instantiated at: {resultsDir}" + ) + ) + +} diff --git a/man/createLogger.Rd b/man/createLogger.Rd new file mode 100644 index 0000000..2db8140 --- /dev/null +++ b/man/createLogger.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/createLogger.R +\name{createLogger} +\alias{createLogger} +\title{`createLogger()` as a text file in a results directory} +\usage{ +createLogger(resultsDir) +} +\arguments{ +\item{resultsDir}{A valid folder where to save the results of a study. +This function will work best with the folder structure formed by +`createsResultsDir()`} +} +\value{ +Invisible +} +\description{ +Sets 'ohdsi/ParallelLogger' log and error report for a study +} +\examples{ +directories <- createResultsDir() +createLogger( + resultsDir = directories$resultsDir + ) + +} From 5751955ff28aa554d8a1a15ceb5348e543ce5a91 Mon Sep 17 00:00:00 2001 From: cebarboza Date: Thu, 4 Jun 2026 20:57:20 +0200 Subject: [PATCH 2/5] create loggers --- NAMESPACE | 2 +- R/{createLogger.R => createLoggers.R} | 4 ++-- man/createLogger.Rd | 26 -------------------- man/createLoggers.Rd | 34 +++++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 29 deletions(-) rename R/{createLogger.R => createLoggers.R} (95%) delete mode 100644 man/createLogger.Rd create mode 100644 man/createLoggers.Rd diff --git a/NAMESPACE b/NAMESPACE index 629372b..3bbad1f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,7 +2,7 @@ export(arrangeCdmNames) export(assertCdmNames) -export(createLogger) +export(createLoggers) export(createResultsDir) export(getPkgZips) export(unZipStudyFiles) diff --git a/R/createLogger.R b/R/createLoggers.R similarity index 95% rename from R/createLogger.R rename to R/createLoggers.R index 0c335bc..b70390f 100644 --- a/R/createLogger.R +++ b/R/createLoggers.R @@ -1,4 +1,4 @@ -#' `createLogger()` as a text file in a results directory +#' `createLoggers()` as a text file in a results directory #' #' @description #' Sets `ohdsi/ParallelLogger` log and error report for a study @@ -20,7 +20,7 @@ #' ) #' @importFrom checkmate assertDirectoryExists #' @importFrom ParallelLogger function -createLogger <- function( +createLoggers <- function( resultsDir, loggerName = "OMOP STUDY", logFileName = "log.txt", diff --git a/man/createLogger.Rd b/man/createLogger.Rd deleted file mode 100644 index 2db8140..0000000 --- a/man/createLogger.Rd +++ /dev/null @@ -1,26 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/createLogger.R -\name{createLogger} -\alias{createLogger} -\title{`createLogger()` as a text file in a results directory} -\usage{ -createLogger(resultsDir) -} -\arguments{ -\item{resultsDir}{A valid folder where to save the results of a study. -This function will work best with the folder structure formed by -`createsResultsDir()`} -} -\value{ -Invisible -} -\description{ -Sets 'ohdsi/ParallelLogger' log and error report for a study -} -\examples{ -directories <- createResultsDir() -createLogger( - resultsDir = directories$resultsDir - ) - -} diff --git a/man/createLoggers.Rd b/man/createLoggers.Rd new file mode 100644 index 0000000..e9da2b7 --- /dev/null +++ b/man/createLoggers.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/createLoggers.R +\name{createLoggers} +\alias{createLoggers} +\title{`createLoggers()` as a text file in a results directory} +\usage{ +createLoggers( + resultsDir, + loggerName = "OMOP STUDY", + logFileName = "log.txt", + errorFileName = "error.txt", + eventLevel = "TRACE" +) +} +\arguments{ +\item{resultsDir}{A valid folder where to save the results of a study. +This function will work best with the folder structure formed by +`createsResultsDir()`} + +\item{eventLevel}{TRACE is the default, captures all the output from +the console} +} +\value{ +Invisible +} +\description{ +Sets `ohdsi/ParallelLogger` log and error report for a study +} +\examples{ +directories <- createResultsDir() +createLogger( + resultsDir = directories$resultsDir + ) +} From de924dae4d1ef7d37c96f41f75c9859e73dfa65a Mon Sep 17 00:00:00 2001 From: cebarboza Date: Fri, 5 Jun 2026 00:18:49 +0200 Subject: [PATCH 3/5] test createLoggers --- R/createLoggers.R | 95 ++++++++++++++++++----------- R/createResultsDir.R | 38 ++++++++---- tests/testthat/test-createLoggers.R | 43 +++++++++++++ 3 files changed, 128 insertions(+), 48 deletions(-) create mode 100644 tests/testthat/test-createLoggers.R diff --git a/R/createLoggers.R b/R/createLoggers.R index b70390f..c86c6b1 100644 --- a/R/createLoggers.R +++ b/R/createLoggers.R @@ -3,13 +3,14 @@ #' @description #' Sets `ohdsi/ParallelLogger` log and error report for a study #' -#' #' @param resultsDir A valid folder where to save the results of a study. #' This function will work best with the folder structure formed by #' `createsResultsDir()` +#' @param loggerName A name in character. Default 'OMOP_STUDY_LOGGER' +#' @param logFileName A file name in character. Default 'log' +#' @param errorFileName A file name in character. Default 'error' #' @param eventLevel TRACE is the default, captures all the output from #' the console -#' #' @returns Invisible #' @export #' @@ -19,60 +20,84 @@ #' resultsDir = directories$resultsDir #' ) #' @importFrom checkmate assertDirectoryExists -#' @importFrom ParallelLogger function +#' @importFrom checkmate assertCharacter +#' @importFrom fs path_ext_set +#' @importFrom ParallelLogger registerLogger +#' @importFrom ParallelLogger createLogger +#' @importFrom ParallelLogger createFileAppender +#' @importFrom ParallelLogger layoutParallel +#' @importFrom cli cli_alert_info +#' @importFrom glue glue createLoggers <- function( resultsDir, - loggerName = "OMOP STUDY", - logFileName = "log.txt", - errorFileName = "error.txt", + loggerName = "OMOP_STUDY", + logFileName = "log", + errorFileName = "error", eventLevel = "TRACE" - ) { +) { checkmate::assertDirectoryExists(resultsDir) - checkmate::assertCharacter(loggerName) + checkmate::assertCharacter(logFileName) + checkmate::assertCharacter(errorFileName) - stopifnot( - "logFileName doesn't have a '.txt' extension" = fs::path_ext( - logFileName - ) == "txt" - ) - stopifnot( - "errorFileName doesn't have a '.txt' extension" = fs::path_ext( - errorFileName - ) == "txt" - ) stopifnot( 'eventLevel should be one of: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"' = eventLevel %in% c( "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" - ) + ) ) + # Logger ---- logFileLocation <- file.path( resultsDir, - "log.txt" + fs::path_ext_set( + logFileName, + ".txt" ) - checkmate::assertDirectoryExists(logFileLocation) - - logger <- ParallelLogger::createLogger( - name = loggerName, - threshold = eventLevel, - appenders = list( - ParallelLogger::createFileAppender( - layout = ParallelLogger::layoutParallel, - fileName = logFileLocation + ) + ParallelLogger::registerLogger( + logger <- ParallelLogger::createLogger( + name = loggerName, + threshold = eventLevel, + appenders = list( + ParallelLogger::createFileAppender( + layout = ParallelLogger::layoutParallel, + fileName = logFileLocation ) ) ) - registerLogger( - logger + ) + cli::cli_alert_info( + glue::glue( + "Logger file created at: {resultsDir}" + ) + ) + checkmate::assertFileExists(logFileLocation) + + # Error --------------- + + errorFileLocation <- file.path( + resultsDir, + fs::path_ext_set( + errorFileName, + ".txt" ) + ) - ParallelLogger::logInfo( - glue::glue( - "Logger instantiated at: {resultsDir}" + ParallelLogger::registerLogger( + ParallelLogger::createLogger( + name = "DEFAULT_ERROR_REPORT_LOGGER", + threshold = "FATAL", + appenders = list( + ParallelLogger::createFileAppender( + layout = ParallelLogger::layoutErrorReport, + fileName = errorFileLocation, + overwrite = TRUE, + expirationTime = 60 + ) ) + ) ) - + return(invisible()) } diff --git a/R/createResultsDir.R b/R/createResultsDir.R index 3c3c3eb..41e4d59 100644 --- a/R/createResultsDir.R +++ b/R/createResultsDir.R @@ -17,7 +17,7 @@ #' \item \code{resultsDirName}: The name of the results subdirectory. #' } #' -#' @importFrom ParallelLogger logInfo +#' @importFrom cli cli_alert_info #' @importFrom checkmate assertDirectoryExists #' @importFrom glue glue #' @@ -27,32 +27,44 @@ createResultsDir <- function( dbname ) { # Set folder location for results ---- - ParallelLogger::logInfo("Setting location for results") + cli::cli_alert_info( + "Creating locations to save results" + ) if (is.null(outputDir)) { outputDir <- getwd() - checkmate::assertDirectoryExists(outputDir) + checkmate::assertDirectoryExists( + outputDir + ) } else { if (!dir.exists(outputDir)) { - dir.create(outputDir) - checkmate::assertDirectoryExists(outputDir) + dir.create( + outputDir + ) + checkmate::assertDirectoryExists( + outputDir + ) } else { - outputDir <- normalizePath(outputDir) - checkmate::assertDirectoryExists(outputDir) + outputDir <- normalizePath( + outputDir + ) + checkmate::assertDirectoryExists( + outputDir + ) } } - - resultsDirName <- glue::glue("results_{dbname}") - + resultsDirName <- glue::glue( + "results_{dbname}" + ) resultsDir <- file.path( outputDir, resultsDirName ) - if (!dir.exists(resultsDir)) { dir.create(resultsDir) } - - checkmate::assertDirectoryExists(resultsDir) + checkmate::assertDirectoryExists( + resultsDir + ) return( list( outputDir = outputDir, diff --git a/tests/testthat/test-createLoggers.R b/tests/testthat/test-createLoggers.R new file mode 100644 index 0000000..1fedd4b --- /dev/null +++ b/tests/testthat/test-createLoggers.R @@ -0,0 +1,43 @@ +test_that("Create logger files correctly", { + outputDir <- file.path( + tempdir() + ) + + # runLoggerTest <- function(outputDir) { + directories <- createResultsDir( + outputDir = outputDir, + dbname = "LOGGER" + ) + createLoggers( + resultsDir = directories$resultsDir, + loggerName = "OMOP STUDY", + logFileName = "log.txt", + errorFileName = "error.txt", + eventLevel = "TRACE" + ) + stop("Error test") + # } + + runLoggerTest(outputDir) + + file.path( + outputDir, + "results_LOGGER", + "log.txt" + ) |> + checkmate::checkFileExists() |> + expect_true() + + file.path( + outputDir, + "results_LOGGER", + "error.txt" + ) |> + checkmate::checkFileExists() |> + expect_true() + + unlink( + outputDir, + recursive = TRUE + ) +}) From 006d6d13f76618924ea6a0de8a4aec416211b9cc Mon Sep 17 00:00:00 2001 From: cebarboza Date: Fri, 5 Jun 2026 01:07:21 +0200 Subject: [PATCH 4/5] createLoggers error and test --- DESCRIPTION | 3 ++- NAMESPACE | 6 +++++- R/createLoggers.R | 28 +++++++++++++------------- man/createLoggers.Rd | 19 +++++++++++++----- renv.lock | 31 +++++++++++++++++++++++++++++ tests/testthat/test-createLoggers.R | 29 +++++++++++---------------- 6 files changed, 78 insertions(+), 38 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index c99e8f1..c8e536a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -28,7 +28,8 @@ Imports: glue, stringr, zip, - here + here, + fs Config/roxygen2/version: 8.0.0 Suggests: testthat (>= 3.0.0) diff --git a/NAMESPACE b/NAMESPACE index 3bbad1f..88c3167 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,7 +7,10 @@ export(createResultsDir) export(getPkgZips) export(unZipStudyFiles) export(zipStudyFiles) -importFrom(ParallelLogger,logInfo) +importFrom(ParallelLogger,createFileAppender) +importFrom(ParallelLogger,createLogger) +importFrom(ParallelLogger,layoutParallel) +importFrom(ParallelLogger,registerLogger) importFrom(checkmate,assertCharacter) importFrom(checkmate,assertDirectoryExists) importFrom(checkmate,assertFileExists) @@ -17,6 +20,7 @@ importFrom(cli,cli_alert_danger) importFrom(cli,cli_alert_info) importFrom(cli,cli_alert_success) importFrom(cli,cli_alert_warning) +importFrom(fs,path_ext_set) importFrom(glue,glue) importFrom(glue,glue_collapse) importFrom(here,here) diff --git a/R/createLoggers.R b/R/createLoggers.R index c86c6b1..e54c5f2 100644 --- a/R/createLoggers.R +++ b/R/createLoggers.R @@ -1,16 +1,19 @@ #' `createLoggers()` as a text file in a results directory #' #' @description -#' Sets `ohdsi/ParallelLogger` log and error report for a study +#' Sets `ohdsi/ParallelLogger` log and error report for a study. Logger +#' registered as 'OMOP_STUDY_LOGGER' and error report as 'OMOP_STUDY_ERROR_REPORT'. +#' Please note: avoid using inside a tryCatch() or similar because events +#' will not be 'obsorbed' and not recorded by ParallelLogger. #' #' @param resultsDir A valid folder where to save the results of a study. #' This function will work best with the folder structure formed by #' `createsResultsDir()` -#' @param loggerName A name in character. Default 'OMOP_STUDY_LOGGER' #' @param logFileName A file name in character. Default 'log' #' @param errorFileName A file name in character. Default 'error' #' @param eventLevel TRACE is the default, captures all the output from #' the console +#' @param errorLevel ERROR is the default, captures errors and fatal events #' @returns Invisible #' @export #' @@ -22,18 +25,15 @@ #' @importFrom checkmate assertDirectoryExists #' @importFrom checkmate assertCharacter #' @importFrom fs path_ext_set -#' @importFrom ParallelLogger registerLogger -#' @importFrom ParallelLogger createLogger -#' @importFrom ParallelLogger createFileAppender -#' @importFrom ParallelLogger layoutParallel +#' @importFrom ParallelLogger registerLogger createLogger createFileAppender layoutParallel #' @importFrom cli cli_alert_info #' @importFrom glue glue createLoggers <- function( resultsDir, - loggerName = "OMOP_STUDY", logFileName = "log", errorFileName = "error", - eventLevel = "TRACE" + eventLevel = "TRACE", + errorLevel = "ERROR" ) { checkmate::assertDirectoryExists(resultsDir) @@ -58,7 +58,7 @@ createLoggers <- function( ) ParallelLogger::registerLogger( logger <- ParallelLogger::createLogger( - name = loggerName, + name = "OMOP_STUDY_LOGGER", threshold = eventLevel, appenders = list( ParallelLogger::createFileAppender( @@ -68,15 +68,14 @@ createLoggers <- function( ) ) ) - cli::cli_alert_info( + ParallelLogger::logInfo( glue::glue( - "Logger file created at: {resultsDir}" + "Logger file will be created at: {resultsDir}" ) ) checkmate::assertFileExists(logFileLocation) # Error --------------- - errorFileLocation <- file.path( resultsDir, fs::path_ext_set( @@ -87,8 +86,8 @@ createLoggers <- function( ParallelLogger::registerLogger( ParallelLogger::createLogger( - name = "DEFAULT_ERROR_REPORT_LOGGER", - threshold = "FATAL", + name = "OMOP_STUDY_ERROR_REPORT", + threshold = errorLevel, appenders = list( ParallelLogger::createFileAppender( layout = ParallelLogger::layoutErrorReport, @@ -99,5 +98,6 @@ createLoggers <- function( ) ) ) + return(invisible()) } diff --git a/man/createLoggers.Rd b/man/createLoggers.Rd index e9da2b7..82a8813 100644 --- a/man/createLoggers.Rd +++ b/man/createLoggers.Rd @@ -6,10 +6,10 @@ \usage{ createLoggers( resultsDir, - loggerName = "OMOP STUDY", - logFileName = "log.txt", - errorFileName = "error.txt", - eventLevel = "TRACE" + logFileName = "log", + errorFileName = "error", + eventLevel = "TRACE", + errorLevel = "ERROR" ) } \arguments{ @@ -17,14 +17,23 @@ createLoggers( This function will work best with the folder structure formed by `createsResultsDir()`} +\item{logFileName}{A file name in character. Default 'log'} + +\item{errorFileName}{A file name in character. Default 'error'} + \item{eventLevel}{TRACE is the default, captures all the output from the console} + +\item{errorLevel}{ERROR is the default, captures errors and fatal events} } \value{ Invisible } \description{ -Sets `ohdsi/ParallelLogger` log and error report for a study +Sets `ohdsi/ParallelLogger` log and error report for a study. Logger +registered as 'OMOP_STUDY_LOGGER' and error report as 'OMOP_STUDY_ERROR_REPORT'. +Please note: avoid using inside a tryCatch() or similar because events +will not be 'obsorbed' and not recorded by ParallelLogger. } \examples{ directories <- createResultsDir() diff --git a/renv.lock b/renv.lock index 8badab4..d075dfe 100644 --- a/renv.lock +++ b/renv.lock @@ -90,6 +90,17 @@ ], "Hash": "2e004ed19964915a8faf48a574439be9" }, + "fs": { + "Package": "fs", + "Version": "2.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "09278623bca442bc53b0940ffa2f6d87" + }, "glue": { "Package": "glue", "Version": "1.8.1", @@ -101,6 +112,16 @@ ], "Hash": "f8122473e9a49e00d0642f78235ca5e3" }, + "here": { + "Package": "here", + "Version": "1.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "rprojroot" + ], + "Hash": "e5114f2abe04168238181913a8572358" + }, "httr": { "Package": "httr", "Version": "1.4.8", @@ -201,6 +222,16 @@ ], "Hash": "f88151fb9ca15e72dc351deb1328716e" }, + "rprojroot": { + "Package": "rprojroot", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "https://cloud.r-project.org", + "Requirements": [ + "R" + ], + "Hash": "b2453de2d29aa646afe4781defdc7903" + }, "rstudioapi": { "Package": "rstudioapi", "Version": "0.18.0", diff --git a/tests/testthat/test-createLoggers.R b/tests/testthat/test-createLoggers.R index 1fedd4b..0018ee1 100644 --- a/tests/testthat/test-createLoggers.R +++ b/tests/testthat/test-createLoggers.R @@ -3,29 +3,24 @@ test_that("Create logger files correctly", { tempdir() ) - # runLoggerTest <- function(outputDir) { - directories <- createResultsDir( - outputDir = outputDir, - dbname = "LOGGER" - ) - createLoggers( - resultsDir = directories$resultsDir, - loggerName = "OMOP STUDY", - logFileName = "log.txt", - errorFileName = "error.txt", - eventLevel = "TRACE" - ) - stop("Error test") - # } + dirs <- createResultsDir( + outputDir = outputDir, + dbname = "LOGGER" + ) + + createLoggers( + resultsDir = dirs$resultsDir + ) - runLoggerTest(outputDir) + ParallelLogger::logError("Test error.txt") + ParallelLogger::clearLoggers() file.path( outputDir, "results_LOGGER", "log.txt" ) |> - checkmate::checkFileExists() |> + file.exists() |> expect_true() file.path( @@ -33,7 +28,7 @@ test_that("Create logger files correctly", { "results_LOGGER", "error.txt" ) |> - checkmate::checkFileExists() |> + file.exists() |> expect_true() unlink( From 572078a6c05bb509f23192fdd88e8d1b428edb5a Mon Sep 17 00:00:00 2001 From: cebarboza Date: Fri, 5 Jun 2026 02:01:21 +0200 Subject: [PATCH 5/5] devtools check, tests and examples ok --- NAMESPACE | 2 +- R/createResultsDir.R | 11 ++++++++ R/getPkgZips.R | 5 ++-- R/{createLoggers.R => setLoggers.R} | 28 +++++++++++++------ R/unzipStudyFiles.R | 17 +++++++++++ R/zipStudyFiles.R | 16 +++++++++++ man/createResultsDir.Rd | 11 ++++++++ man/getPkgZips.Rd | 5 ++-- man/{createLoggers.Rd => setLoggers.Rd} | 23 ++++++++++----- man/unZipStudyFiles.Rd | 17 +++++++++++ man/zipStudyFiles.Rd | 17 +++++++++++ ...test-createLoggers.R => test-setLoggers.R} | 2 +- 12 files changed, 131 insertions(+), 23 deletions(-) rename R/{createLoggers.R => setLoggers.R} (89%) rename man/{createLoggers.Rd => setLoggers.Rd} (73%) rename tests/testthat/{test-createLoggers.R => test-setLoggers.R} (95%) diff --git a/NAMESPACE b/NAMESPACE index 88c3167..e20ce00 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,9 +2,9 @@ export(arrangeCdmNames) export(assertCdmNames) -export(createLoggers) export(createResultsDir) export(getPkgZips) +export(setLoggers) export(unZipStudyFiles) export(zipStudyFiles) importFrom(ParallelLogger,createFileAppender) diff --git a/R/createResultsDir.R b/R/createResultsDir.R index 41e4d59..6e86872 100644 --- a/R/createResultsDir.R +++ b/R/createResultsDir.R @@ -22,6 +22,17 @@ #' @importFrom glue glue #' #' @export +#' +#' @examples +#' outputDir <- file.path( +#' tempdir(), +#' "examples" +#' ) +#' directories <- createResultsDir( +#' outputDir, +#' dbname = "OMOP" +#' ) +#' unlink(outputDir, recursive = TRUE) createResultsDir <- function( outputDir = NULL, dbname diff --git a/R/getPkgZips.R b/R/getPkgZips.R index 6033362..e0ebe2c 100644 --- a/R/getPkgZips.R +++ b/R/getPkgZips.R @@ -13,15 +13,14 @@ #' @export #' #' @examples +#' \dontrun{ #' pkg_status_list <- getPkgZips() -#' #' # Format supp in this way: #' devtools <- list(Package = "devtools", Version = "2.5.1") #' duckdb <- list(Package = "duckdb", Version = "1.5.2") #' supp <- list(Packages = list(devtools = devtools, duckdb = duckdb)) -#' #' pkg_status_list <- getPkgZips(supplement = supp) -#' +#' } #' @details #' If the package version is not found under any of the R minor releases, the package will be downloaded from the specified `backupRrel` regardless of package version specified in renv.lock #' @importFrom renv lockfile_read diff --git a/R/createLoggers.R b/R/setLoggers.R similarity index 89% rename from R/createLoggers.R rename to R/setLoggers.R index e54c5f2..832927b 100644 --- a/R/createLoggers.R +++ b/R/setLoggers.R @@ -1,4 +1,4 @@ -#' `createLoggers()` as a text file in a results directory +#' `setLoggers()` as text files in the results directory #' #' @description #' Sets `ohdsi/ParallelLogger` log and error report for a study. Logger @@ -14,21 +14,33 @@ #' @param eventLevel TRACE is the default, captures all the output from #' the console #' @param errorLevel ERROR is the default, captures errors and fatal events +#' #' @returns Invisible -#' @export #' -#' @examples -#' directories <- createResultsDir() -#' createLogger( -#' resultsDir = directories$resultsDir -#' ) #' @importFrom checkmate assertDirectoryExists #' @importFrom checkmate assertCharacter #' @importFrom fs path_ext_set #' @importFrom ParallelLogger registerLogger createLogger createFileAppender layoutParallel #' @importFrom cli cli_alert_info #' @importFrom glue glue -createLoggers <- function( +#' +#' @export +#' +#' @examples +#' outputDir <- file.path( +#' tempdir(), +#' "examples" +#' ) +#' directories <- createResultsDir( +#' outputDir, +#' dbname = "OMOP" +#' ) +#' setLoggers( +#' resultsDir = directories$resultsDir +#' ) +#' ParallelLogger::clearLoggers() +#' unlink(outputDir, recursive = TRUE) +setLoggers <- function( resultsDir, logFileName = "log", errorFileName = "error", diff --git a/R/unzipStudyFiles.R b/R/unzipStudyFiles.R index 1da5225..8fbc2aa 100644 --- a/R/unzipStudyFiles.R +++ b/R/unzipStudyFiles.R @@ -15,6 +15,23 @@ #' @importFrom glue glue #' #' @export +#' +#' @examples +#' \dontrun{ +#' path <- testthat::test_path( +#' "data", +#' "results_execution" +#' ) +#' outputDir <- file.path( +#' tempdir(), +#' "examples" +#' ) +#' unZipStudyFiles( +#' path = path, +#' outputDir = outputDir +#' ) +#' unlink(outputDir, recursive = TRUE) +#' } unZipStudyFiles <- function( path, pattern, diff --git a/R/zipStudyFiles.R b/R/zipStudyFiles.R index 84ddeb3..4de4547 100644 --- a/R/zipStudyFiles.R +++ b/R/zipStudyFiles.R @@ -12,6 +12,22 @@ #' @importFrom glue glue #' #' @export +#' @examples +#' outputDir <- file.path( +#' tempdir(), +#' "examples" +#' ) +#' dbname <- "IPCI" +#' directories <- createResultsDir( +#' outputDir, +#' dbname = dbname +#' ) +#' zipStudyFiles( +#' resultsDirName = directories$resultsDir, +#' outputDir = directories$outputDir, +#' dbname = dbname +#' ) +#' unlink(outputDir, recursive = TRUE) zipStudyFiles <- function( resultsDirName, outputDir, diff --git a/man/createResultsDir.Rd b/man/createResultsDir.Rd index 401224a..8083910 100644 --- a/man/createResultsDir.Rd +++ b/man/createResultsDir.Rd @@ -26,3 +26,14 @@ Creates a subdirectory for results based on the database name within a specified output directory. If the output directory is not provided, the current working directory is used. } +\examples{ +outputDir <- file.path( + tempdir(), + "examples" +) +directories <- createResultsDir( + outputDir, + dbname = "OMOP" + ) +unlink(outputDir, recursive = TRUE) +} diff --git a/man/getPkgZips.Rd b/man/getPkgZips.Rd index 2ba988e..081ac12 100644 --- a/man/getPkgZips.Rd +++ b/man/getPkgZips.Rd @@ -36,13 +36,12 @@ A function that locates and downloads Windows binaries (.zip) from CRAN based on If the package version is not found under any of the R minor releases, the package will be downloaded from the specified `backupRrel` regardless of package version specified in renv.lock } \examples{ +\dontrun{ pkg_status_list <- getPkgZips() - # Format supp in this way: devtools <- list(Package = "devtools", Version = "2.5.1") duckdb <- list(Package = "duckdb", Version = "1.5.2") supp <- list(Packages = list(devtools = devtools, duckdb = duckdb)) - pkg_status_list <- getPkgZips(supplement = supp) - +} } diff --git a/man/createLoggers.Rd b/man/setLoggers.Rd similarity index 73% rename from man/createLoggers.Rd rename to man/setLoggers.Rd index 82a8813..62eb72a 100644 --- a/man/createLoggers.Rd +++ b/man/setLoggers.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/createLoggers.R -\name{createLoggers} -\alias{createLoggers} -\title{`createLoggers()` as a text file in a results directory} +% Please edit documentation in R/setLoggers.R +\name{setLoggers} +\alias{setLoggers} +\title{`setLoggers()` as text files in the results directory} \usage{ -createLoggers( +setLoggers( resultsDir, logFileName = "log", errorFileName = "error", @@ -36,8 +36,17 @@ Please note: avoid using inside a tryCatch() or similar because events will not be 'obsorbed' and not recorded by ParallelLogger. } \examples{ -directories <- createResultsDir() -createLogger( +outputDir <- file.path( + tempdir(), + "examples" +) +directories <- createResultsDir( + outputDir, + dbname = "OMOP" + ) +setLoggers( resultsDir = directories$resultsDir ) +ParallelLogger::clearLoggers() +unlink(outputDir, recursive = TRUE) } diff --git a/man/unZipStudyFiles.Rd b/man/unZipStudyFiles.Rd index ea01921..2e637fa 100644 --- a/man/unZipStudyFiles.Rd +++ b/man/unZipStudyFiles.Rd @@ -23,3 +23,20 @@ A message stating the location of the uncompressed results \description{ `unZipStudyFiles()` uncompress study results } +\examples{ + \dontrun{ +path <- testthat::test_path( + "data", + "results_execution" +) +outputDir <- file.path( + tempdir(), + "examples" +) +unZipStudyFiles( + path = path, + outputDir = outputDir +) +unlink(outputDir, recursive = TRUE) +} +} diff --git a/man/zipStudyFiles.Rd b/man/zipStudyFiles.Rd index eb03143..3bd8223 100644 --- a/man/zipStudyFiles.Rd +++ b/man/zipStudyFiles.Rd @@ -19,3 +19,20 @@ A message stating the location of the compressed results \description{ `zipStudyFiles()` compress study results } +\examples{ +outputDir <- file.path( + tempdir(), + "examples" + ) +dbname <- "IPCI" +directories <- createResultsDir( + outputDir, + dbname = dbname +) +zipStudyFiles( + resultsDirName = directories$resultsDir, + outputDir = directories$outputDir, + dbname = dbname +) +unlink(outputDir, recursive = TRUE) +} diff --git a/tests/testthat/test-createLoggers.R b/tests/testthat/test-setLoggers.R similarity index 95% rename from tests/testthat/test-createLoggers.R rename to tests/testthat/test-setLoggers.R index 0018ee1..9ea0a3a 100644 --- a/tests/testthat/test-createLoggers.R +++ b/tests/testthat/test-setLoggers.R @@ -8,7 +8,7 @@ test_that("Create logger files correctly", { dbname = "LOGGER" ) - createLoggers( + studyGenerics::setLoggers( resultsDir = dirs$resultsDir )