python書き込みログファイル操作クラスと適用例

2871 ワード

この例では、python書き込みログファイルの操作クラスとアプリケーションについて説明します.皆さんの参考にしてください.具体的には以下の通りです.
プロジェクトの開発過程で、ログファイルは欠かせません.ログファイルを書くことで、プログラムの実行状況を知ることができます.特に、本番環境に導入する場合、この場合は一般的にdebugはできません.もちろん、場合によってはremote debug(リモートdebug)もできます.その場合は別として.やはり通常のログを書く方法で、例えばjavaでは、log 4 j、sf 4 j、logbackなどの3つのコンポーネントをよく見てログを書くことができます.
pythonではどのように実現するか、実はpython自体にもログ操作のライブラリがあります.直接使用できます.ここで私はプロジェクトで使ったことを整理して、以下に分かち合って、この実現の方法、主に2つの点があります
1.ログを書くクラス
2.ログプロファイル(handler、logger、およびログ保存のパスなど)
ログを書くクラス

'''
Created on 2012-2-17
@author: yihaomen.com
'''
import logging.config
import os
class INetLogger:
  log_instance = None
  @staticmethod
  def InitLogConf():
    currentDir=os.path.dirname(__file__)
    INetLogger.log_instance = logging.config.fileConfig(currentDir+os.path.sep+"logger.ini")
  @staticmethod
  def GetLogger(name = ""):
    if INetLogger.log_instance == None:
      INetLogger.InitLogConf()
    INetLogger.log_instance = logging.getLogger(name)
    return INetLogger.log_instance
if __name__ == "__main__":
  logger = INetLogger.GetLogger()
  logger.debug("debug message")
  logger.info("info message")
  logger.warn("warn message")
  logger.error("error message")
  logger.critical("critical message")
  logHello = INetLogger.GetLogger("root")
  logHello.info("Hello world!")


ログプロファイル、上のクラスと同じフォルダの下でlogger.ini

[loggers]
keys=root,mysql,socket
[handlers]
keys=consoleHandler,rotateFileHandler
[formatters]
keys=simpleFormatter
[formatter_simpleFormatter]
format=[%(asctime)s][%(levelname)s] [%(filename)s:%(lineno)d] [thread:%(thread)d]: %(message)s
[logger_root]
qualname=root
level=DEBUG
handlers=consoleHandler,rotateFileHandler
[logger_mysql]
qualname=mysql
level=DEBUG
handlers=rotateFileHandler
[logger_socket]
qualname=socket
level=ERROR
handlers=rotateFileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_rotateFileHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('c:/logs/InetServer.log', 'a', 2000000, 9)


handlerを使ったらrotateFileHandlerの場合、ログは才c:/logs/InetServerに保存されます.logファイルには、ログが200000 dを超えると、別のファイルを再生成し、9日間のレコードを保存し、30に構成することができます.これにより、最近の1ヶ月のログを保存することができます.
Pythonに関する詳細については、「Pythonログ操作テクニックまとめ」、「Python関数使用テクニックまとめ」、「Python文字列操作テクニックまとめ」、「Python入門と進級経典チュートリアル」、「Pythonファイルと目録操作テクニックまとめ」などのトピックを参照してください.
ここではPythonプログラムの設計に役立つことを願っています.