loggingを利用する.basicConfig生成ファイル--中国語の文字化けし解決方法
4915 ワード
目次 loggingモジュール なぜloggingモジュール を使用するのか loggingモジュール の使用方法 loggingモジュールを使用してログファイルを書く方法 loggerオブジェクト を利用する.はloggingを利用する.基本構成
loggingモジュール
loggingモジュールはPythonに内蔵標準モジュールで、主に実行ログを出力するloggingは情報の出力位置を設定し、どのように出力するかに用いられる.出力ログのレベル、保存パス、ログファイルのロールバックなどを設定できます.異なるログ・レベルを設定することで、releaseバージョンで重要な情報のみを出力し、大量のデバッグ情報を表示する必要はありません.
なぜloggingモジュールを使用するのか
プログラムの実行中に、重要なデータ情報が発生するのは避けられない.ユーザに見せることができるものもあれば、後で最適化システムをデバッグする際の重要な参考として、黙って収集する必要があるものもある.煩雑なログの読み書きを処理し、Pythonはすでに便利なモジュールloggingを提供しています.
loggingモジュールの使用方法
モジュールのインポート
loggingモジュールは非常に豊富な機能を提供しています(ここでは本人がよく使う機能だけを紹介します)
loggingモジュールの使用方法の簡単な例
機能及びパラメータ解析
loggingモジュールを使用してログファイルを書く方法
当分、書類の書き方は2つしか把握していません
loggerオブジェクトの使用
loggingを利用する.基本構成
この方法でログをファイルに書き込むのは通常中国語が文字化けして表示されることをサポートしていません.ネット上には多くの処理方法がありますが、なぜ私たちは最初から中国語の文字化けして問題を解決しないのでしょうか.ここで私の解決方法を共有します.
stream:sysへの出力を指定できるログの出力ストリーム.stderr, sys.stdoutまたはファイル、デフォルトはsysに出力.stderr、streamとfilenameが同時に指定されている場合、streamはstreamを使用してファイルに出力することを無視されて符号化の問題を解決することができますが、これによっていくつかの問題が発生します.まず、ファイルはプログラムの実行中に常に開いている必要があります.次に、ファイルとコンソールの出力を同時に行うことはできません.
以上の未来の学习の仕事の中でもっと良い解决措置が戻って穴を埋めます...
転載先:https://www.cnblogs.com/dmcs95/p/10660372.html
loggingモジュール
loggingモジュールはPythonに内蔵標準モジュールで、主に実行ログを出力するloggingは情報の出力位置を設定し、どのように出力するかに用いられる.出力ログのレベル、保存パス、ログファイルのロールバックなどを設定できます.異なるログ・レベルを設定することで、releaseバージョンで重要な情報のみを出力し、大量のデバッグ情報を表示する必要はありません.
なぜloggingモジュールを使用するのか
プログラムの実行中に、重要なデータ情報が発生するのは避けられない.ユーザに見せることができるものもあれば、後で最適化システムをデバッグする際の重要な参考として、黙って収集する必要があるものもある.煩雑なログの読み書きを処理し、Pythonはすでに便利なモジュールloggingを提供しています.
loggingモジュールの使用方法
モジュールのインポート
import logging
loggingモジュールは非常に豊富な機能を提供しています(ここでは本人がよく使う機能だけを紹介します)
loggingモジュールの使用方法の簡単な例
import logging
logging.basicConfig(level=logging.DEBUG,
format="%(asctime)s\t"
"%(filename)s\t"
"[line:%(lineno)d]\t"
"%(levelname)s
"
"%(message)s",
datefmt="%a, %d %b %Y %H:%M:%S"
)
logging.debug(" ")
logging.info(" ")
logging.warning(" ")
logging.error(" ")
logging.critical(" ")
機能及びパラメータ解析
logging.basicConfig(
filename="filename"
, 'w' 'a'
filemode="w" "a"
format=" "
Textual time when the LogRecord was created
"%(asctime)s"
Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL)
%(levelno)s
Text logging level for the message ("DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL")
%(levelname)s
Full pathname of the source file where the logging call was issued (if available)
, sys.argv[0]
%(pathname)s:
Filename portion of pathname
%(filename)s
Function name
%(funcName)s
Source line number where the logging call was issued (if available)
%(lineno)d
The result of record.getMessage(), computed just as the record is emitted
%(message)s
Thread ID (if available)
ID
%(thread)d
Thread name (if available)
%(threadName)s
Process ID (if available)
ID
%(process)d
Use the specified date/time format
/
%a : %d : %b : %Y : (XXXX) %H : %M : %S :
datefmt="%a, %d %b %Y %H:%M:%S"
)
loggingモジュールを使用してログファイルを書く方法
当分、書類の書き方は2つしか把握していません
loggerオブジェクトの使用
import logging
logger = logging.getLogger() # logger
logger.setLevel(logging.INFO) #
#
file_handle = logging.FileHandler("log", encoding="UTF-8")
#
stream_handle = logging.StreamHandler()
#
fmt = logging.Formatter(f"{'*'*28}
"
"> %(asctime)s
"
"> %(levelname)s - "
"%(filename)s - "
"[line:%(lineno)d]
"
f"{'-'*40}
"
" %(message)s
"
f"{'-'*40}
",
datefmt="%a, %d %b %Y"
"%H:%M:%S"
)
file_handle.setFormatter(fmt) #
# stream_handle.setFormatter(fmt) #
logger.addHandler(file_handle) # logger
# logger.addHandler(stream_handle) # logger
logger.info(" ")
loggingを利用する.基本構成
この方法でログをファイルに書き込むのは通常中国語が文字化けして表示されることをサポートしていません.ネット上には多くの処理方法がありますが、なぜ私たちは最初から中国語の文字化けして問題を解決しないのでしょうか.ここで私の解決方法を共有します.
import logging
file = open("log", encoding="utf-8", mode="a")
logging.basicConfig(level=logging.DEBUG,
stream=file,
format="%(asctime)s "
"%(filename)s [line:%(lineno)d] "
"%(levelname)s
"
"%(message)s",
datefmt="%a, %d %b %Y %H:%M:%S"
)
logging.debug(" ")
logging.info(" ")
logging.warning(" ")
logging.error(" ")
logging.critical(" ")
file.close()
stream:sysへの出力を指定できるログの出力ストリーム.stderr, sys.stdoutまたはファイル、デフォルトはsysに出力.stderr、streamとfilenameが同時に指定されている場合、streamはstreamを使用してファイルに出力することを無視されて符号化の問題を解決することができますが、これによっていくつかの問題が発生します.まず、ファイルはプログラムの実行中に常に開いている必要があります.次に、ファイルとコンソールの出力を同時に行うことはできません.
以上の未来の学习の仕事の中でもっと良い解决措置が戻って穴を埋めます...
転載先:https://www.cnblogs.com/dmcs95/p/10660372.html