web-dev-qa-db-ja.com

Rの標準のロギングパッケージはありますか?

Rの標準の(ある場合)ロギングパッケージと、いくつかのサンプルの使用方法を探していますか?

リストされているパッケージの中に私も見当たりません: http://cran.r-project.org/web/packages/

67
mariotomo

loggingパッケージをCRANに送信しました。これは、「ブイリー」パッケージの古いバージョン(Brian Lee Yung Rowe作)の一部に基づいています。

loggingパッケージを見つけます:

これは標準のpython loggingパッケージを模倣していますが、使用する場合は注意してください。R-Forgeのパッケージホームページなど、例としてドキュメント化しようとしました。いくつかの可能な 使用セッション を指します。

フィードバックは興味を持って読まれます!

46
mariotomo

現時点では、ロギング用のネイティブライブラリなしがまだあります。ただし、CRANで利用できるものは4つあります。

1)ロギング
-シンプルでlog4jのような
-標準のPythonライブラリに似ています(そのドキュメントをガイドラインとして使用します)
-著者は2010年に開始し、2012年までに「成熟」した
-WLOGSolutionsによって採用
-積極的に維持

2)futile.logger(推奨!私も使用しています)
-積極的に維持
-jsonエラーロギングをサポート
-Pythonのロギングと同様のセマンティクスおよびlog4jのような
-複雑かもしれません

3)log4r
-簡単でlog4jのような
-2014年以降維持されていない

4)luzlogr
-supersimple-(ファイルを開く、書き込む、閉じる)

21
torina

futile.logger パッケージ。フォーマットされた出力文字列で複数の階層ロガーを実装し、さまざまな方法で出力を送信できます。また、パッケージごとのロガーを自然に実装します。

14
Spacedman

組み込み(パッケージベース)関数は、「警告」、「メッセージ」、「停止」です。これらの関数は複数の言語をサポートしています。ファイルにログを記録する場合は、これらの関数を「シンク」と一緒に使用できます。

RSeekで検索すると、ロガー機能を備えたパッケージが無駄になります。

8
Karsten W.

2014年6月にlogRプロジェクトを開始しました。当初は、csvおよびDBI/RODBDC/RJDBCデータベースにログを記録できる例外処理を備えたRプロセスロガーでした。
2.1バージョンから、ログのバックエンドとしてPostgreSQLのみをサポートするように切り替えました。
postgresデータベースに単一のテーブルを配置できる場合、logRを簡単に使用できます。

アップストリーム repo 、および github mirror

LogR機能の一部:

  • トランザクションログ:ログの挿入、式の評価、ログの更新
  • postgresデータベースへのログ
  • エラー、警告、メッセージ、割り込みを記録する
  • ログプロセスメタデータ:入出力行、カスタムメタデータの柔軟なリスト
  • オプションの高精度タイミング microbenchmarkCore
  • 並列処理をサポート
  • 階層ログ-親ログIDのログ(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単体テストで確認できます。

3
jangorecki

loggingfutile.loggerに比べて簡単な代替手段:

log4rcrangithub

Log4rパッケージは、広くエミュレートされたlog4j APIにほぼ基づいて、Rにログインするためのクリーンで軽量なオブジェクト指向のアプローチを提供することを目的としています。以下のコード例は、ロガーを使用して出力を単純なプレーンテキストログファイルに出力する方法を示しています。

2
talegari

私は何も知らないので、log4jのラッパーを数日のうちにリリースしようとしていました(私はしばらくの間それをテストしています)。利用可能になったときにお知らせします。

2
Shane