Skip to content

Commit ee11f10

Browse files
swaraj-neutonywu1999
authored andcommitted
chore(logging): Remove log4r dependency (replace with base R logging) (#141)
1 parent 074a559 commit ee11f10

8 files changed

Lines changed: 82 additions & 17 deletions

DESCRIPTION

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ Depends:
2020
R (>= 4.0)
2121
Imports:
2222
data.table,
23-
log4r,
2423
methods,
2524
checkmate,
2625
utils,

NAMESPACE

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ importFrom(data.table,melt)
4141
importFrom(data.table,rbindlist)
4242
importFrom(data.table,setnames)
4343
importFrom(data.table,uniqueN)
44-
importFrom(log4r,console_appender)
45-
importFrom(log4r,file_appender)
4644
importFrom(methods,new)
4745
importFrom(stats,na.omit)
4846
importFrom(utils,sessionInfo)

R/utils_logging.R

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#' log4r appender used not to write messages
1+
#' Appender used not to write messages
22
#'
33
#' A convenience function written to save time on checking if messages should
44
#' be printed or logs should be written to a file.
@@ -12,9 +12,41 @@
1212
}
1313

1414

15+
#' Format one log line: level, timestamp, message
16+
#'
17+
#' Message parts are joined with paste0, never sprintf, so a literal percent
18+
#' sign is written verbatim.
19+
#' @keywords internal
20+
.formatLogMessage = function(level, ...) {
21+
timestamp = format(Sys.time(), "%Y-%m-%d %H:%M:%S")
22+
level_field = formatC(level, width = 5L, flag = "-")
23+
paste0(level_field, " [", timestamp, "] ", paste0(..., collapse = ""), "\n")
24+
}
25+
26+
27+
#' File appender: returns a function(level, ...) that writes one line to a file
28+
#' @keywords internal
29+
.fileAppender = function(log_file_path, append = TRUE) {
30+
force(log_file_path)
31+
force(append)
32+
function(level, ...) {
33+
cat(.formatLogMessage(level, ...), file = log_file_path, sep = "",
34+
append = append)
35+
}
36+
}
37+
38+
39+
#' Console appender: returns a function(level, ...) that writes one line to console
40+
#' @keywords internal
41+
.consoleAppender = function() {
42+
function(level, ...) {
43+
cat(.formatLogMessage(level, ...))
44+
}
45+
}
46+
47+
1548
#' Set default logging object when package is loaded
1649
#' @param ... ignored
17-
#' @importFrom log4r file_appender console_appender
1850
#' @return none, sets options called MSstatsLog and MSstatsMsg
1951
#' @keywords internal
2052
.onLoad = function(...) {
@@ -24,11 +56,11 @@
2456
path = paste0("./MSstats_log_", gsub("[ :\\-]", "_", time_now), ".log")
2557

2658
if (is.null(logs)) {
27-
ms_logs = file_appender(path)
59+
ms_logs = .fileAppender(path)
2860
options(MSstatsLog = ms_logs)
2961
}
3062
if (is.null(msgs)) {
31-
ms_messages = console_appender()
63+
ms_messages = .consoleAppender()
3264
options(MSstatsMsg = ms_messages)
3365
}
3466
}
@@ -79,24 +111,23 @@ MSstatsLogsSettings = function(use_log_file = TRUE, append = FALSE,
79111

80112
if (use_log_file) {
81113
if (!is.null(log_file_path)) {
82-
file_appender = log4r::file_appender(log_file_path,
83-
append = append)
114+
file_logger = .fileAppender(log_file_path, append = append)
84115
} else {
85116
time_now = Sys.time()
86117
log_file_path = paste0(base, gsub("[ :\\-]", "_", time_now),
87118
".log")
88-
file_appender = log4r::file_appender(log_file_path)
119+
file_logger = .fileAppender(log_file_path)
89120
}
90121
} else {
91-
file_appender = .nullAppender
122+
file_logger = .nullAppender
92123
}
93-
124+
94125
if (verbose) {
95-
console_appender = console_appender()
126+
console_logger = .consoleAppender()
96127
} else {
97-
console_appender = .nullAppender
128+
console_logger = .nullAppender
98129
}
99-
loggers = list(file_appender, console_appender)
130+
loggers = list(file_logger, console_logger)
100131
names(loggers) = paste0(pkg_name, c("Log", "Msg"))
101132
do.call(options, loggers)
102133
invisible(TRUE)

man/dot-consoleAppender.Rd

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/dot-fileAppender.Rd

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/dot-formatLogMessage.Rd

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/dot-nullAppender.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vignettes/msstats_data_format.Rmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ to store fraction labels.
7575

7676
# Logging
7777

78-
`MSstatsConvert` allows for flexible logging based on the `log4r` package.
78+
`MSstatsConvert` allows for flexible logging.
7979
Information about preprocessing steps can be written to a file, to a console,
8080
to both or to neither.
8181
The `MSstatsLogsSettings` function helps manage log settings.

0 commit comments

Comments
 (0)