検井システム

概要

Astropyログ記録システムは、どのログメッセージを表示するか、それらを捕捉し、ファイルに送信するかをユーザに柔軟に決定させることを目的としている。

Astropyルーチンに印刷されたすべてのメッセージは、内蔵されたログ記録機能(通常)を使用する必要があります。 print() 呼び出しは、明示的に印刷出力を要求するルーチンでのみ完了する)。メッセージには、以下のようなレベルの1つがあることができる。

  • デバッグ:詳細情報は,通常問題を診断する際にのみ興味を持つ.

  • 情報:現在のタスクに関する情報を伝達し,作業が予想どおりに行われていることを確認する.

  • 警告:予期しないことが発生したことを示し,ユーザ操作が必要となる可能性がある.

  • エラー:異常を含むより深刻な問題があることを示す

デフォルトでは、警告およびエラーメッセージのみが表示され、位置に送信される ~/.astropy/astropy.log (ファイルが書けば)。

ログ記録システムの構成

まず、レコーダを導入する:

from astropy import log

メッセージの閾値レベルは、上で定義されたように設定されてもよい。

log.setLevel('INFO')

以下のコマンドを使用して色を無効にすることができます(デフォルトで有効):

log.disable_color()

そして、以下のように有効にします。

log.enable_color()

警告は warnings.warn 以下のコマンドログインを使用することができます:

log.enable_warnings_logging()

以下のコマンドを使用して無効にすることができる:

log.disable_warnings_logging()

例外はログに含めることができ、以下のようにすることができる。

log.enable_exception_logging()

以下のコマンドを使用して無効にすることができる:

log.disable_exception_logging()

これらの設定は、Astropyプロファイルから設定されてもよく、全体ログファイルを指定することもできます。参照してください Using the configuration file より多くの情報を得ることができます

コンテキストマネージャ

場合によっては、特定のメッセージが出力されたかどうかをチェックするか、または特定のコードセグメント内のメッセージをファイルに記録するなど、ログメッセージを捕捉することを望むことができる。両方の場合はコンテキストマネージャを使用して実現することができる.

ログメッセージをリストに追加するには、まずレコーダを導入してください(導入されていない場合):

from astropy import log

そしてメッセージをリストに記録したいコードを囲みます with 声明:

with log.log_to_list() as log_list:
    # your code here

上記の例では、コードブロックが実行されると、 log_list 開始されたすべてのAstropyログ記録メッセージが含まれるPythonリストになります。メッセージは通常通り出力されますのでご注意ください。

同様に、以下のコマンドを使用して、特定のコードセグメントのログメッセージをファイルに出力することができます。

with log.log_to_file('myfile.log'):
    # your code here

全てのメッセージを追加します myfile.log (これは、本明細書に記載されたログファイル全体の補足である Using the configuration file )。

While these context managers will include all the messages emitted by the logger (using the global level set by log.setLevel), it is possible to filter a subset of these using filter_level=, and specifying one of 'DEBUG', 'INFO', 'WARN', 'ERROR'. Note that if filter_level is a lower level than that set via setLevel, only messages with the level set by setLevel or higher will be included (i.e. filter_level is only filtering a subset of the messages normally emitted by the logger).

同様に、メッセージのサブセットをソース毎にフィルタリングすることができ、方法は指定される。 filter_origin= 文字列の後になりますメッセージのソースが文字列で始まる場合、メッセージはコンテキストマネージャに含まれる。例えば filter_origin='astropy.wcs' その中に含まれているのは astropy.wcs サブセットです。

プロファイルの使用

レコーダのオプションは [logger] Astropyプロファイルの部分::

[logger]

# Threshold for the logging messages. Logging messages that are less severe
# than this level will be ignored. The levels are 'DEBUG', 'INFO', 'WARNING',
# 'ERROR'
log_level = 'INFO'

# Whether to use color for the level names
use_color = True

# Whether to log warnings.warn calls
log_warnings = False

# Whether to log exceptions before raising them
log_exceptions = False

# Whether to always log messages to a log file
log_to_file = True

# The file to log messages to. If empty string is given, it defaults to a
# file `astropy.log` in the astropy config directory.
log_file_path = '~/.astropy/astropy.log'

# Threshold for logging messages to log_file_path
log_file_level = 'INFO'

# Format for log file entries
log_file_format = '%(asctime)s, %(origin)s, %(levelname)s, %(message)s'

# The encoding (e.g., UTF-8) to use for the log file.  If empty string is
# given, it defaults to the platform-preferred encoding.
log_file_encoding = ""

参照/API

Asterpy.Loggerモジュール

このモジュールは,内蔵されたログ記録モジュールに基づいて1つのログ記録クラスを定義する.

注釈

このモジュールは内部に使われています astropy 使い方をします。他のパケットで使用するために、ご自分のレコーダを実現することをお勧めします。

クラス

Conf \()

の構成パラメータ astropy.logger それがそうです。

AstropyLogger \(名前[, level] )

このようなものは、Astropyログレコードを設定するために使用されます。

LoggingError \

この例外は、スター·ディスク·レコーダにおいて発生する様々なエラーに適用され、通常、レコーダ関連機能が起動または無効にされたときに発生する。