我正在寻找R的标准(如果有)日志包,以及一些示例用法?
我也没有在列出的软件包中看到任何软件包:http://cran.r-project.org/web/packages/
答案 0 :(得分:45)
我刚刚向CRAN提交了一个logging
包。它是基于旧版“无效”包装的某些部分(Brian Lee Yung Rowe)。
您找到了logging
包:
它模仿标准的python logging
包,但如果你决定使用它,请小心。我还试图通过示例来记录它,R-Forge上的包主页指向了几个可能的usage sessions。
有兴趣阅读任何反馈意见!
答案 1 :(得分:20)
目前,还有没有本机库用于记录。但CRAN上有四种可用:
1)记录
- 简单& log4j的样
- 类似于标准的Python库
- 自2013年以来没有维护,上面检测到一些问题
2) futile.logger (推荐!我也在使用它)
- 积极维护
- 支持json错误记录
- 与Python的日志记录以及类似log4j的类似语义
- 可能很复杂
3) log4r
- 容易和log4j类似
- 自2014年以来未维护
4) luzlogr
- supersimple - (打开,写入,关闭文件)
答案 2 :(得分:14)
我建议使用futile.logger
包,它使用格式化的输出字符串实现多个分层记录器,您可以以不同的方式发送输出。它还自然地实现了每个包的记录器。
答案 3 :(得分:8)
内置(包基)功能是“警告”,“消息”,“停止”。这些功能支持多种语言。如果您想要登录文件,也许您可以将这些功能与“接收器”一起使用。
使用RSeek进行搜索,使得记录器功能无法实现。
答案 4 :(得分:3)
我在2014年6月启动了logR项目。最初它是一个R进程记录器,具有异常处理能力,可以登录到csv和DBI / RODBDC / RJDBC数据库。
从2.1版本开始,我已经切换到仅支持PostgreSQL作为日志的后端
如果您能够在postgres数据库中安排单个表,那么您可以轻松使用logR。
一些logR功能:
它需要RPostgreSQL
和data.table
个包。
用法:
# install logR
install.packages("logR", repos = c("https://jangorecki.github.io/logR", "https://cran.rstudio.com"))
# attach logR
library(logR)
# setup connection, default to env vars: `POSTGRES_DB`, etc.
# if you have docker then: docker run --rm -p 127.0.0.1:5432:5432 -e POSTGRES_PASSWORD=postgres --name pg-logr postgres:9.5
logR_connect()
# [1] TRUE
# create logr table
logR_schema()
# make some logging and calls
logR(1+2) # OK
#[1] 3
logR(log(-1)) # warning
#[1] NaN
f = function() stop("an error")
logR(r <- f()) # stop
#NULL
g = function(n) data.frame(a=sample(letters, n, TRUE))
logR(df <- g(4)) # out rows
# a
#1 u
#2 c
#3 w
#4 p
# try CTRL+C / 'stop' button to interrupt
logR(Sys.sleep(15))
# wrapper to: dbReadTable(conn = getOption("logR.conn"), name = "logr")
logR_dump()
# logr_id logr_start expr status alert logr_end timing in_rows out_rows mail message cond_call cond_message
#1: 1 2016-02-08 16:35:00.148 1 + 2 success FALSE 2016-02-08 16:35:00.157 0.000049163 NA NA FALSE NA NA NA
#2: 2 2016-02-08 16:35:00.164 log(-1) warning TRUE 2016-02-08 16:35:00.171 0.000170801 NA NA FALSE NA log(-1) NaNs produced
#3: 3 2016-02-08 16:35:00.180 r <- f() error TRUE 2016-02-08 16:35:00.187 0.000136896 NA NA FALSE NA f() an error
#4: 4 2016-02-08 16:35:00.197 df <- g(4) success FALSE 2016-02-08 16:35:00.213 0.000696145 NA 4 FALSE NA NA NA
#5: 5 2016-02-08 16:35:00.223 Sys.sleep(15) interrupt TRUE 2016-02-08 16:35:05.434 5.202319000 NA NA FALSE NA NA NA
在logR单元测试中可以找到更多示例。
答案 5 :(得分:2)
我不知道任何,所以我准备在接下来的几天内为log4j发布一个包装器(我已经测试了一段时间了)。我会告诉你它何时可用。
答案 6 :(得分:2)