A simple logging system for R, based on log4j。基于log4j
log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布。
Log4j是高度可配置的,并可通过在运行时的外部文件配置。它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,诸如:数据库,文件,控制台,UNIX系统日志等。
Log4j中有三个主要组成部分:
loggers: 负责捕获记录信息。
appenders : 负责发布日志信息,以不同的首选目的地。
layouts: 负责格式化不同风格的日志信息。
log4j的是线程安全的
log4j是经过优化速度的
log4j是基于一个名为记录器的层次结构
log4j的支持每个记录器多输出追加器(appender)
log4j并不限于一组预定义的设备
日志行为可以使用配置文件在运行时设置
log4j使用多个层次,即ALL,TRACE,DEBUG,INFO,WARN,ERROR和FATAL
日志输出的格式可以通过扩展Layout类容易地改变
日志输出的目标,以及在写入策略可通过实现Appender程序接口改变
log4j 会故障停止。然而,尽管它肯定努力确保传递,log4j不保证每个日志语句将被传递到目的地
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (由底到高,不包括自定义级别 Level):
ALL Level:最低等级,用于打开所有日志记录。
DEBUG Level:指定细粒度信息事件是最有用的应用程序调试。
INFO:指定能够突出在粗粒度级别的应用程序运行情况的信息的消息。
WARN:指定具有潜在危害的情况。
ERROR level:虽然发生错误事件,但仍然不影响系统的继续运行。
FATAL:指定非常严重的错误事件,这可能导致应用程序中止。
OFF:最高等级,为了关闭日志记录。
Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。大于等于的级别的日志才输出。
logr4 provides an object-oriented logging system that uses an API roughly equivalent to log4j and its related variants.
# 载入log4r包
library(log4r)
# 创建一个logger
logger <- create.logger()
# 设置logger的输出
logfile(logger) <- 'base.log'
# 设置logger的日志级别
level(logger) <- 'INFO'
其中参数logformat:The format string used when writing messages to the log file.
logfile(x) # 获取当前logfile
logfile(x) <- value
其中:
x:An object of class logger.
value:The path name of a file to be used for logging. Must be a valid path in an already existing directory
level(x) # 获取当前level
level(x) <- value
其中:
x:An object of class logger.
value:A loglevel. 取值为:"DEBUG", "INFO", "WARN", "ERROR", "FATAL"
levellog(logger, level, message)
debug(logger, message)
info(logger, message)
warn(logger, message)
error(logger, message)
fatal(logger, message)
其中:
logger:An object of class 'logger'.
level :The desired priority level: a number, a character, or an object of class 'loglevel'. Will be coerced using as.loglevel.取值为"DEBUG", "INFO", "WARN", "ERROR", "FATAL"
message:A string to be printed to the log with the corresponding priority level.
logformat(x)
logformat(x) <- value
其中:
x:An object of class logger.
value:A string containing a proper format string. 默认值为NULL
例:
logger <- create.logger(logfile = 'debugging.log', level = 'DEBUG')
print(logformat(logger)) # NULL
logformat(logger) <- 'FORMAT STRING'