有没有R的标准日志logging包?
我正在寻找R的标准(如果有的话)的testing包,以及一些示例用法?
我也没有看到列出的软件包: http : //cran.r-project.org/web/packages/
我刚刚提交了一个logging
包到CRAN。 它是基于一些老版本的“徒劳”套餐的一些部分(Brian Lee Yung Rowe)。
你可以find这个logging
包:
- 在github上
- 在R锻造
- 在CRAN上
它模仿标准的Python logging
包,但是如果你决定使用它,请小心。 我也试图通过例子logging它,R-Forge的软件包主页指向了几个可能的使用会话 。
任何反馈将被读取与兴趣!
目前,还没有用于logging的本地库 。 但是有四个可用的在cran上:
1) 日志logging
– 简单&log4j样
– 类似于标准的Python库
– 自2013年以来没有维护,一些问题检测到较高
2) futile.logger (推荐!我也在用)
– 积极维护
– 支持json错误日志logging
– 类似于Python的日志logging以及类似log4j的语义
– 可能会很复杂
3) log4r
– 简单和log4j一样
– 自2014年以来没有维持
4) luzlogr
超级简单 – (打开,写入,closures文件)
我build议使用futile.logger
包,它实现了带有格式化输出string的多个层次logging器,并且可以以不同的方式发送输出。 它也自然地实现了每个软件包的logging器。
内置(封装基础)function是“警告”,“消息”,“停止”。 这些function支持多种语言。 如果你想login到一个文件,也许你可以使用这些function一起“水槽”。
search与RSeek提出了一个logging器function的包无效。
我已经在2014年6月开始了logR项目。最初,它是一个具有exception处理function的R进程logging器,能够logging到csv和DBI / RODBDC / RJDBC数据库。
从2.1版本开始,我已经切换到仅支持PostgreSQL作为日志的后端。
如果你能够在postgres数据库中安排单表,那么你可以很容易地使用logR。
上游回购 ,和github镜子 。
一些logRfunction:
- 事务日志logging:插入日志,评估expression式,更新日志
- login到postgres数据库
- logging错误,警告,消息,中断
- 日志进程元数据:input/输出nrow,灵活的自定义元数据列表
- 使用可选的microbenchmarkCore进行高精度定时
- 支持并行处理
- 分层日志 – logging父日志ID(2.1.5中的新增function)
它需要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
更多的例子可以在logRunit testing中find。
我不知道有什么,所以我准备在接下来的几天里发布一个log4j的包装(我已经testing了一段时间了)。 我会告诉你什么时候可用。
与logging
和futile.logger
相比,这是一个更简单的select:
log4r
( cran , github )
log4r软件包旨在提供一种干净,轻量级的面向对象的方法来基于广泛仿真的log4j API来loginR。 下面的示例代码显示了在实践中如何使用logging器将输出打印到简单的明文日志文件。