ロギングモジュールの紹介
Python のログ モジュールは、サードパーティのモジュールまたはアプリケーションで使用できる一般的なログ システムを提供します。このモジュールはさまざまなログ レベルを提供し、ファイル、HTTP GET/POST、SMTP、ソケットなどのさまざまな方法でログを記録できます。特定のログ記録メソッドを自分で実装することもできます。
ロギング モジュールと log4j のメカニズムは同じですが、具体的な実装の詳細は異なります。このモジュールは、ロガー、ハンドラー、フィルター、およびフォーマッタを提供します。
- logger: アプリケーション コードで使用するログ インターフェイスを提供します。ロガーの最も一般的に使用される操作は、構成とログ メッセージの送信という 2 つのカテゴリに分類されます。ロガー オブジェクトは、logging.getLogger(name) を通じて取得できます。名前が指定されていない場合、同じ名前の getLogger メソッドを複数回呼び出すと、同じロガー オブジェクトが返されます。
- ハンドラー: ログレコードをファイル、ソケットなどの適切な宛先に送信します。ロガー オブジェクトは、addHandler メソッドを通じて複数のハンドラーに 0 を追加でき、各ハンドラーは異なるログ レベルを定義して、階層的なフィルタリングとログの表示を実現できます。
- フィルター: ログ レコードがハンドラーに送信されるかどうかを決定するエレガントな方法を提供します。
- フォーマッタ: ログ出力の特定の形式を指定します。フォーマッタのコンストラクタには、メッセージのフォーマット文字列と日付文字列の 2 つのパラメータが必要です。どちらもオプションです。
log4j と同様に、ロガー、ハンドラー、およびログ メッセージの呼び出しには、ログ メッセージのレベルがロガーおよびハンドラーのレベルより大きい場合にのみ、特定のログ レベル (レベル) を設定できます。
ロギング使用状況分析
1. logger =logging.getLogger("endlesscode") を初期化します。後続のログ形式の %(name)s は、ここでのモジュール名に対応します。
2. レベル logger.setLevel(logging.DEBUG) を設定します。 ログには、設定されたレベルを超えるログが記録されます。
3. ハンドラー、一般的に使用されるものは StreamHandler と FileHandler です。Windows では、1 つはコンソールとファイル ログ、1 つは CMD ウィンドウに出力され、もう 1 つはファイルに記録されると理解できます
。
4. 最終的なログ情報の順序、構造、内容を定義するフォーマッタ。私はこの形式 '[%(asctime)s] [%(levelname)s] %(message)s', '%Y- を使用するのが好きです。 %m -%d %H:%M:%S'、
%(name)s ロガーの名前
%(levelname)s のテキスト形式のログレベル
%(message)s ユーザーが出力したメッセージ
%(asctime)s 文字列としての現在時刻。デフォルトの形式は「2003-07-08 16:49:45,896」です。カンマの後に来るのはミリ秒です
%(levelno)s 数値形式のログレベル
%(pathname)s ログ出力関数を呼び出すモジュールのフルパス名には
が含まれていない可能性があります
%(filename)sはログ出力関数を呼び出すモジュールのファイル名です
%(module)s ログ出力関数を呼び出すモジュールの名前
%(funcName)sはログ出力関数を呼び出す関数名です
%(lineno)d は、ログ出力関数を呼び出すステートメントが配置されているコード行です
%(created)f 現在の時刻。時刻を表す UNIX 標準浮動小数点数で表されます
%(relativeCreated)d ログ情報を出力する場合、ロガーが作成されてからのミリ秒数
%(thread)d スレッド ID。おそらくそうではありません
%(threadName)s スレッド名。おそらくそうではありません
%(process)d プロセス ID。おそらくそうではありません
5. 記録 object.debug(message) を使用してログを記録します
以下に例を書いてみましょう。CMD ウィンドウでは、エラーとそれ以上のレベルのログのみが出力されますが、デバッグとそれ以上のレベルの情報はログに出力されます
リーリー
リーリー
複数のモジュールでロギングを使用する
ロギング モジュールは、同じ Python インタープリター内で、logging.getLogger('log_name') を複数回呼び出すと、複数のモジュールの場合でも同じロガー インスタンスを返すことを保証します。したがって、マルチモジュール シナリオでロギングを使用する一般的な方法は、メイン モジュールでロギングを構成し、この構成が複数のサブモジュールに影響を及ぼし、他のモジュールで getLogger を介して Logger オブジェクトを直接取得することです。
プロフィール:
リーリー
リーリー
import logging logger = logging.getLogger('main.mod.submod') logger.info('logger of submod say something...') def tst(): logger.info('this is submod.tst()...')
然后运行python main.py,控制台输出:
2012-03-09 18:22:22,793 - root - DEBUG - test root logger... 2012-03-09 18:22:22,793 - main - INFO - test main logger 2012-03-09 18:22:22,809 - main - INFO - start import module 'mod'... 2012-03-09 18:22:22,809 - main.mod.submod - INFO - logger of submod say something... 2012-03-09 18:22:22,809 - main.mod - INFO - logger say something... 2012-03-09 18:22:22,809 - main - DEBUG - let's test mod.testLogger() 2012-03-09 18:22:22,825 - main.mod - DEBUG - this is mod.testLogger... 2012-03-09 18:22:22,825 - main.mod.submod - INFO - this is submod.tst()... 2012-03-09 18:22:22,841 - root - INFO - finish test...
可以看出,和预想的一样,然后在看一下tst.log,logger配置中的输出的目的地:
2012-03-09 18:22:22,793 - main - INFO - test main logger 2012-03-09 18:22:22,809 - main - INFO - start import module 'mod'... 2012-03-09 18:22:22,809 - main.mod.submod - INFO - logger of submod say something... 2012-03-09 18:22:22,809 - main.mod - INFO - logger say something... 2012-03-09 18:22:22,809 - main - DEBUG - let's test mod.testLogger() 2012-03-09 18:22:22,825 - main.mod - DEBUG - this is mod.testLogger... 2012-03-09 18:22:22,825 - main.mod.submod - INFO - this is submod.tst()...
tst.log中没有root logger输出的信息,因为logging.conf中配置了只有main logger及其子logger使用RotatingFileHandler,而root logger是输出到标准输出。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Pythonの実際のアプリケーションには、データ分析、Web開発、人工知能、自動化が含まれます。 1)データ分析では、PythonはPandasとMatplotlibを使用してデータを処理および視覚化します。 2)Web開発では、DjangoおよびFlask FrameworksがWebアプリケーションの作成を簡素化します。 3)人工知能の分野では、TensorflowとPytorchがモデルの構築と訓練に使用されます。 4)自動化に関しては、ファイルのコピーなどのタスクにPythonスクリプトを使用できます。

Pythonは、データサイエンス、Web開発、自動化スクリプトフィールドで広く使用されています。 1)データサイエンスでは、PythonはNumpyやPandasなどのライブラリを介してデータ処理と分析を簡素化します。 2)Web開発では、DjangoおよびFlask Frameworksにより、開発者はアプリケーションを迅速に構築できます。 3)自動化されたスクリプトでは、Pythonのシンプルさと標準ライブラリが理想的になります。

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
