Я ищу стандартный (если есть) пакет регистрации для R и некоторые примеры использования?
Я также не вижу ни одного из перечисленных пакетов: http://cran.r-project.org/web/packages/
Я ищу стандартный (если есть) пакет регистрации для R и некоторые примеры использования?
Я также не вижу ни одного из перечисленных пакетов: http://cran.r-project.org/web/packages/
Я только что отправил пакет logging
в CRAN. он основан на некоторых частях старой версии "бесполезного" пакета (Брайан Ли Юнг Роу).
Вы найдете пакет logging
:
Он имитирует стандартный пакет python logging
, но, пожалуйста, будьте осторожны, если решите его использовать. Я также попытался задокументировать это на примере домашней страницы пакета в R-Forge, указывающей на пару возможных сеансов использования.
Любые отзывы будут прочитаны с интересом!
На данный момент нет родной библиотеки для ведения журнала. Но на CRAN их четыре:
1) регистрация
- просто & log4j, как
- напоминает стандартную библиотеку Python (использует эту документацию в качестве руководства)
- автор начал его в 2010 году, "зрелый" к 2012 году
- принято WLOGSolutions
- активно поддерживается
2) futile.logger (рекомендуется! Я тоже его использую)
- активно поддерживая
- поддерживает регистрацию ошибок json
- семантика похожая на логирование Pythons, а также log4j-подобная
- может быть сложным
3) log4r
- простой и похожий на log4j
- не эксплуатируется с 2014 года
4) luzlogr
- supersimple - (открыть, написать, закрыть файл)
Я предлагаю futile.logger
пакет, он реализует несколько иерархических регистраторов с отформатированными выходными строками, и вы можете отправлять выходные данные разными способами. Он также реализует регистраторы для каждого пакета.
Встроенные функции (базовая база) - это "предупреждение", "сообщение", "остановка". Эти функции поддерживают несколько языков. Если вы хотите войти в файл, возможно, вы можете использовать эти функции вместе с "sink".
Поиск с помощью RSeek привел к бесполезности пакета с помощью функции журнала.
Я начал проект logR в июне 2014 года. Первоначально это был обработчик процессов R с обработкой исключений, способный регистрироваться в базах данных csv и DBI/RODBDC/RJDBC.
Начиная с версии 2.1, я переключился на поддержку только PostgreSQL в качестве бэкэнд для журналов.
Если вы можете упорядочить одну таблицу в базе данных postgres, вы можете легко использовать logR.
Upstream repo и github mirror.
Некоторые функции 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.
Я не знаю никого, поэтому в ближайшие несколько дней я собирался выпустить обертку для log4j (я тестировал ее некоторое время). Я дам вам знать, когда это будет доступно.
Более простая альтернатива по сравнению с logging
и futile.logger
:
Пакет log4r предназначен для обеспечения чистого, легкого объектно-ориентированного подхода к регистрации в R, основанного примерно на широко эмулированном API log4j. В приведенном ниже примере показан способ использования журнала на практике для вывода вывода в простой файл журнала открытого текста.