Есть ли стандартный пакет ведения журнала для R? [закрытый]


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

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

7 63

7 ответов:

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

найти :

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

любая обратная связь будет читать с интересом!

на данный момент, есть еще нет родной библиотеки для регистрации. Но есть четыре из них доступны на кран:

1) лесозаготовки
- простой и log4j-как
- напоминает стандартную библиотеку Python
- не поддерживая с 2013 года, некоторые проблемы обнаружены верхний

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

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

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

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

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

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

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

вверх по течению РЕПО и зеркало github.

некоторые функции 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.

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

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

log4r (cran,github)

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