当前位置: 首页 > 工具软件 > Log4r > 使用案例 >

log4r包

徐正雅
2023-12-01

log4r包的简要描述:

A simple logging system for R, based on log4j。基于log4j


log4j API

1. 简介

log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布。

Log4j是高度可配置的,并可通过在运行时的外部文件配置。它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,诸如:数据库,文件,控制台,UNIX系统日志等。


2. 组成

Log4j中有三个主要组成部分:
loggers: 负责捕获记录信息。
appenders : 负责发布日志信息,以不同的首选目的地。
layouts: 负责格式化不同风格的日志信息。


3. 特性

log4j的是线程安全的
log4j是经过优化速度的
log4j是基于一个名为记录器的层次结构
log4j的支持每个记录器多输出追加器(appender)
log4j并不限于一组预定义的设备
日志行为可以使用配置文件在运行时设置
log4j使用多个层次,即ALL,TRACE,DEBUG,INFO,WARN,ERROR和FATAL
日志输出的格式可以通过扩展Layout类容易地改变
日志输出的目标,以及在写入策略可通过实现Appender程序接口改变
log4j 会故障停止。然而,尽管它肯定努力确保传递,log4j不保证每个日志语句将被传递到目的地


4. 日志记录级别

日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (由底到高,不包括自定义级别 Level):

ALL Level:最低等级,用于打开所有日志记录。

DEBUG Level:指定细粒度信息事件是最有用的应用程序调试。

INFO:指定能够突出在粗粒度级别的应用程序运行情况的信息的消息。

WARN:指定具有潜在危害的情况。

ERROR level:虽然发生错误事件,但仍然不影响系统的继续运行。

FATAL:指定非常严重的错误事件,这可能导致应用程序中止。

OFF:最高等级,为了关闭日志记录。


Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。大于等于的级别的日志才输出。


log4r包

1. 描述

logr4 provides an object-oriented logging system that uses an API roughly equivalent to log4j and its related variants.


2. 使用基本流程

# 载入log4r包
library(log4r)

# 创建一个logger
logger <- create.logger()

# 设置logger的输出
logfile(logger) <- 'base.log'

# 设置logger的日志级别
level(logger) <- 'INFO'


3. create.logger(logfile = "logfile.log", level = "FATAL", logformat = NULL)

其中参数logformat:The format string used when writing messages to the log file.


4. logfile():Get or set the logfile for a logger object.

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


5. level():Set or get the priority level for a logger object.

level(x) # 获取当前level
level(x) <- value

其中:

x:An object of class logger.
value:A loglevel. 取值为:"DEBUG", "INFO", "WARN", "ERROR", "FATAL"


6. levellog/debug/info/warn/error/fatal():Write messages to logs at a given priority level.

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.


7. logformat():Get or set the format string for a logger object.

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'


 类似资料: