Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'master' of github.com:daroczig/logger
  • Loading branch information
daroczig committed Mar 3, 2021
2 parents e58f47a + 3ebf359 commit c6748ed
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 2 deletions.
3 changes: 3 additions & 0 deletions .travis.yml
Expand Up @@ -3,6 +3,9 @@ sudo: false
cache:
- packages

apt_packages:
- libgit2-dev

r_packages:
- logging
- futile.logger
Expand Down
3 changes: 2 additions & 1 deletion DESCRIPTION
Expand Up @@ -35,7 +35,8 @@ Suggests:
callr,
txtq,
botor,
R.utils
R.utils,
syslognet
Enhances:
logging,
futile.logger,
Expand Down
2 changes: 2 additions & 0 deletions NAMESPACE
Expand Up @@ -17,6 +17,7 @@ export(appender_slack)
export(appender_stderr)
export(appender_stdout)
export(appender_syslog)
export(appender_syslognet)
export(appender_tee)
export(appender_telegram)
export(colorize_by_log_level)
Expand All @@ -39,6 +40,7 @@ export(layout_json)
export(layout_json_parser)
export(layout_logging)
export(layout_simple)
export(layout_syslognet)
export(log_appender)
export(log_debug)
export(log_error)
Expand Down
33 changes: 33 additions & 0 deletions R/appenders.R
Expand Up @@ -255,6 +255,39 @@ appender_syslog <- function(identifier, ...) {
}


#nocov start
#' Send log messages to a network syslog server
#' @param identifier program/function identification (string).
#' @param server machine where syslog daemon runs (string).
#' @param port port where syslog daemon listens (integer).
#'
#' @return A function taking a \code{lines} argument.
#' @export
#' @note This functionality depends on the \pkg{syslognet} package.
#' @examples \dontrun{
#' if (requireNamespace("syslognet", quietly = TRUE)) {
#' log_appender(appender_syslognet("test_app", 'remoteserver'))
#' log_info("Test message.")
#' }
#' }
appender_syslognet <- function(identifier, server, port = 601L) {
fail_on_missing_package('syslognet')
force(identifier)
force(server)
force(port)
structure(
function(lines) {
sev <- attr(lines, 'severity', exact = TRUE)
for (line in lines) {
syslognet::syslog(line, sev, app_name = identifier, server = server, port = port)
}
},
generator = deparse(match.call())
)
}
#nocov end


#' Send log messages to a Amazon Kinesis stream
#' @param stream name of the Kinesis stream
#' @return function taking \code{lines} and optional \code{partition_key} argument
Expand Down
32 changes: 31 additions & 1 deletion R/layouts.R
Expand Up @@ -154,7 +154,7 @@ layout_logging <- structure(function(level, msg, namespace = NA_character_,
attr(level, 'level'), ':',
ifelse(meta$ns == 'global', '', meta$ns), ':',
msg)
}, generator = quote(layout_simple()))
}, generator = quote(layout_logging()))


#' Format a log message with \code{glue}
Expand Down Expand Up @@ -256,3 +256,33 @@ layout_json_parser <- function(fields = c('time', 'level', 'ns', 'ans', 'topenv'
}, generator = deparse(match.call()))

}


#nocov start
#' Format a log record for syslognet
#'
#' Format a log record for syslognet.
#' This function converts the logger log level to a
#' log severity level according to RFC 5424 "The Syslog Protocol".
#'
#' @inheritParams layout_simple
#' @return A character vector with a severity attribute.
#' @export
layout_syslognet <- structure(
function(level, msg, namespace = NA_character_,
.logcall = sys.call(), .topcall = sys.call(-1), .topenv = parent.frame()) {
ret <- paste(attr(level, 'level'), msg)
attr(ret, 'severity') <- switch(
attr(level, 'level', exact = TRUE),
'FATAL' = 'CRITICAL',
'ERROR' = 'ERR',
'WARN' = 'WARNING',
'SUCCESS' = 'NOTICE',
'INFO' = 'INFO',
'DEBUG' = 'DEBUG',
'TRACE' = 'DEBUG')
return(ret)
},
generator = quote(layout_syslognet())
)
#nocov end
32 changes: 32 additions & 0 deletions man/appender_syslognet.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 36 additions & 0 deletions man/layout_syslognet.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c6748ed

Please sign in to comment.