Twiggy

ソフトウェアのスクリーンショット:
Twiggy
ソフトウェアの詳細:
バージョン: 0.4.4
日付のアップロード: 11 May 15
開発者: Peter Fein
ライセンス: 無料
人気: 1

Rating: nan/5 (Total Votes: 0)

トゥイギーは、よりPython的loggingパッケージを構築するための初期段階のプロジェクトです。
使用法:
表示作業を行います。
>>>インポートのsys。 sys.stderrを持ち= sys.stdoutの
セットアップは簡単です
あなたのmain.pyの場合:
>>>インポートツイギー
>>> twiggy.quick_setup()
メッセージのロギング
>>>小枝のインポートから*
主なインタフェースは、魔法のログです。
>>> #doctestログイン:+ ELLIPSIS
<0X ...でtwiggy.Logger.Loggerオブジェクト>
これは、標準的なレベルを使用して、箱から出して動作します:
>>> log.debug( 'あなたは気にしないかもしれません')
DEBUG:あなたは気にしないかもしれません
>>> log.error( 'OMFG!火のズボン!')
ERROR:OMFG!火のズボン!
これは、新しいスタイルをデフォルト、書式文字列の様々なサポートしています。
>>> log.info(ここで= '足'、 'ズボン' '私は{ここ}に{0}を着ます')
INFO:私は私の足の上にズボンを着用
古いスタイルは、しかし正常に動作します:
>>> log.options(スタイル= 'パーセント')。情報(「私は%sのが好き」、「自転車」)
INFO:私はバイクが好き
のようにテンプレートを実行します。
>>> log.options(スタイル= 'ドル')。情報( '$何キル'、何= '車')
INFO:車殺します
あなたのロガーに名前を付けることができます。
>>> mylog = log.name( 'アルフレド')
>>> mylog.debug( 'こんにちは')
DEBUG:アルフレド:こんにちは
しかし名前は、オブジェクトとは関係ありません。それはちょうど人間の使用のための:
>>> mylogはlog.name( 'アルフレド')であり、

メッセージを発​​します
エミッタが疎結合されています。
>>> twiggy.emitters #doctest:+ ELLIPSIS
{'*':<0X ...でtwiggy.Emitter.Emitterオブジェクト>}
あなたは、エミッタにMIN_LEVELを設定することができます。
>>> twiggy.emitters ['*']。MIN_LEVEL = twiggy.Levels.INFO
>>> log.debug(「ヘルプ、ヘルプ、私は抑圧されています」)
>>> log.info( "私はまだかなり死んでいませんよ」)
INFO:私はまだかなり死んでありませんよ
あなたが正規表現に、または任意の関数を使用してフィルタリングすることができます。
>>> twiggy.emitters ['*']。フィルター= "。*パンツ。*"
>>> log.info( "手に入れた私の{0}に"、 "パンツ")
INFO:上の私のズボンを手に入れました
>>> log.info( "シャツ" "私の{0}のガット」)
のは、そのすべてをリセットしてみましょう:
>>> twiggy.emitters ['*']。フィルター=真
>>> twiggy.emitters ['*']。MIN_LEVEL = twiggy.Levels.DEBUG
より良い出力
改行はデフォルトで抑制されています。それは、メッセージごとのオフにすることができます。
>>> log.info( '​​ユーザ NINPUT nannoys NUS')
INFO:ユーザー NINPUT nannoys NUS
>>> log.options(suppress_newlines = Falseが)の.info( '​​我々はndeal ')
INFO:私たち
取引
例外は始まります。また、exc_info渡すことができます。一行に折り畳まれる接頭辞として ' n'を使用します。
>>>試してください。
... 1/0
...を除きます:
... log.trace(「エラー」)( 'オハイオ州のNOE」)を#doctest警告:。+ ELLIPSIS
警告:ああのNOE
TRACEトレースバック(最新の呼び出しの最後):
でトレースファイル ""、2行目、
TRACE 1/0
TRACE ZeroDivisionError:ゼロによる整数除算や剰余
メソッドチェーン
私は、この連鎖のスタイルをたくさん好きです。
>>> log.name( 'ベニート·')。情報( 'こんにちは')
INFO:ベニート:こんにちは
これは、構造化されたログが容易になります:
>>> log.fields(パス= 42)の.info(徒歩のために行きます ')
INFO:パス= 42:散歩に行きます
短いカット。実行時の統計情報の収集のために大きいです。
>>> log.struct(パス= 42、イルカ= '感謝')
INFO:イルカ=感謝:パス= 42:
部分的な結合は、Webアプリケーションのために有用であることができます。
>>> per_request_log = log.fields(REQUEST_ID = '12345')
>>> per_request_log.fields(行= 100、ユーザー= '率直')。情報( 'frobnicatingデータベース')
INFO:REQUEST_ID = 12345:行= 100:ユーザー=フランク:frobnicatingデータベース
>>> per_request_log.fields(バイト= 5678)の.info( '​​管を介してページを送信します')
INFO:バイト= 5678:REQUEST_ID = 12345:チューブの上にページを送信
連鎖したスタイルは素晴らしいです:
>>> log.name( 'donjuan')。フィールド(パンツ= 'セクシー')。情報(「女性を '= "こんにちは、{誰が} {何}したいですか?」、何='ダンス ')
INFO:donjuan:パンツ=セクシー:こんにちは、女性がダンスをしたいですか?
ダイナミック!
引数/フィールド内の任意の関数が呼び出され、値がsubstituedされています。
>>>輸入OS
>>> twiggy.libインポートthread_nameから
>>> thread_name()
「MainThread」
+ ELLIPSIS:(「私はスレッドにいる{0} "、thread_name)#doctestの.info >>> log.fields(PID = os.getpid)
INFO:PID = 1076:私はスレッドMainThreadによ
これは、私たちはいくつかのクールなものを行うレッツ部分的に結合したロガーと便利です。
>>>クラスThreadTracker(オブジェクト):
...デフ__init __(自己、OBJ):
...自己.__ OBJ = OBJ
...#部分的に結合されたロガー
...自己.__ログイン= log.name(「トラッカー」)。フィールド(OBJ_ID = ID(OBJ)、スレッド= thread_name)
...自己.__ log.debug(「追跡開始」)
...デフ__getattr __(自己、ATTR):
...自己.__ log.debug(「アクセス{0} "、ATTR)
...リターンGETATTR(自己.__ OBJ、ATTR)
...
>>>クラスバンチ(オブジェクト):
...パス
...
>>> FOO =バンチ()
>>> foo.bar = 42
>>>追跡= ThreadTracker(FOO)
DEBUG:トラッカー:OBJ_ID = 14063980:スレッド= MainThreadは:追跡開始しました
>>> tracked.bar
DEBUG:トラッカー:OBJ_ID = 14063980:スレッド= MainThread:アクセスバー
42
>>>インポートスレッド
>>> T = threading.Thread(対象=λ:tracked.bar * 2、名= "TheDoubler」)
>>> t.start()
DEBUG:トラッカー:OBJ_ID = 14063980:スレッド= TheDoubler:アクセスバー
あなたは本当に)(それを呼び出し可能、のreprを記録またはラムダでそれをラップする場合。
最適化
最適化として、MIN_LEVELはロガーに設定することができます。
>>> mylog.min_level = twiggy.Levels.INFO
>>> mylog.info(「あなたはこれを見て」)
INFO:アルフレド:あなたはこれを見ます
>>> mylog.debug( "これは隠されています」)
彼らはまた、format_spec上で動作するフィルタを取ります。ユースケースは、効率的に愚かな何かをやっているライブラリ内の特定のメッセージを遮断されています。
>>> mylog.filter =ラムダS:「ペテン」ではないので
>>> mylog.info(「愚かの開始」を参照)
INFO:アルフレド:愚かの開始
>>>私はxrange(3)のための:3の値が大きいために#
... mylog.info(「私はペテンを呼びます!」)
>>> mylog.info(「エンド愚か」)
INFO:アルフレド:エンド痴態

この要件:

このパイソン

開発者の他のソフトウェア Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

へのコメント Twiggy

コメントが見つかりません
コメントを追加
画像をオンにする!