Существует ли стандартный пакет регистрации для R?

Я ищу стандартный (если есть) пакет регистрации для R и некоторые примеры использования?

Я также не вижу ни одного из перечисленных пакетов: http://cran.r-project.org/web/packages/

Ответ 1

Я только что отправил пакет logging в CRAN. он основан на некоторых частях старой версии "бесполезного" пакета (Брайан Ли Юнг Роу).

Вы найдете пакет logging:

Он имитирует стандартный пакет python logging, но, пожалуйста, будьте осторожны, если решите его использовать. Я также попытался задокументировать это на примере домашней страницы пакета в R-Forge, указывающей на пару возможных сеансов использования.

Любые отзывы будут прочитаны с интересом!

Ответ 2

На данный момент нет родной библиотеки для ведения журнала. Но на CRAN их четыре:

1) регистрация
 - просто & log4j, как
 - напоминает стандартную библиотеку Python (использует эту документацию в качестве руководства)
 - автор начал его в 2010 году, "зрелый" к 2012 году
 - принято WLOGSolutions
 - активно поддерживается

2) futile.logger (рекомендуется! Я тоже его использую)
 - активно поддерживая
 - поддерживает регистрацию ошибок json
 - семантика похожая на логирование Pythons, а также log4j-подобная
 - может быть сложным

3) log4r
 - простой и похожий на log4j
 - не эксплуатируется с 2014 года

4) luzlogr
 - supersimple - (открыть, написать, закрыть файл)

Ответ 3

Я предлагаю futile.logger пакет, он реализует несколько иерархических регистраторов с отформатированными выходными строками, и вы можете отправлять выходные данные разными способами. Он также реализует регистраторы для каждого пакета.

Ответ 4

Встроенные функции (базовая база) - это "предупреждение", "сообщение", "остановка". Эти функции поддерживают несколько языков. Если вы хотите войти в файл, возможно, вы можете использовать эти функции вместе с "sink".

Поиск с помощью RSeek привел к бесполезности пакета с помощью функции журнала.

Ответ 5

Я начал проект logR в июне 2014 года. Первоначально это был обработчик процессов R с обработкой исключений, способный регистрироваться в базах данных csv и DBI/RODBDC/RJDBC.
Начиная с версии 2.1, я переключился на поддержку только PostgreSQL в качестве бэкэнд для журналов.
Если вы можете упорядочить одну таблицу в базе данных postgres, вы можете легко использовать logR.

Upstream repo и github mirror.

Некоторые функции logR:

  • протоколирование транзакций: вставить журнал, оценить выражение, журнал обновлений
  • войти в базу данных postgres
  • записывает ошибки, предупреждения, сообщения, прерывания.
  • метаданные процесса журнала: in/out nrow, гибкий список настраиваемых метаданных
  • высокая точность синхронизации с опцией microbenchmarkCore
  • поддержка параллельной обработки
  • иерархические журналы - идентификатор журнала журналов (новый в 2.1.5)

Для этого требуются пакеты 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.

Ответ 6

Я не знаю никого, поэтому в ближайшие несколько дней я собирался выпустить обертку для log4j (я тестировал ее некоторое время). Я дам вам знать, когда это будет доступно.

Ответ 7

Более простая альтернатива по сравнению с logging и futile.logger:

log4r (cran, github)

Пакет log4r предназначен для обеспечения чистого, легкого объектно-ориентированного подхода к регистрации в R, основанного примерно на широко эмулированном API log4j. В приведенном ниже примере показан способ использования журнала на практике для вывода вывода в простой файл журнала открытого текста.