6

コードのログ ファイルを作成していますが、次のエラーが発生します。

[Tue Jun 11 17:22:59 2013] [エラー] [クライアント 127.0.0.1] mainLCF のインポート
[2013 年 6 月 11 日火曜日 17:22:59] [エラー] [クライアント 127.0.0.1] ファイル「/home/ai/Desktop/home/ubuntu/LCF/GA-LCF/mainLCF.py」、10 行目
[Tue Jun 11 17:22:59 2013] [エラー] [クライアント 127.0.0.1] logging.basicConfig(filename='genetic.log',level=logging.DEBUG,format='%(asctime)s %(message) s', datefmt='%m/%d/%Y %I:%M:%S %p')
[2013 年 6 月 11 日火曜日 17:22:59] [エラー] [クライアント 127.0.0.1] ファイル「/usr/lib/python2.7/logging/__init__.py」、1528 行目、basicConfig
[Tue Jun 11 17:22:59 2013] [エラー] [クライアント 127.0.0.1] hdlr = FileHandler(ファイル名、モード)
[2013 年 6 月 11 日火曜日 17:22:59] [エラー] [クライアント 127.0.0.1] ファイル "/usr/lib/python2.7/logging/__init__.py"、行 901、__init__ 内
[Tue Jun 11 17:22:59 2013] [エラー] [クライアント 127.0.0.1] StreamHandler.__init__(self, self._open())
[Tue Jun 11 17:22:59 2013] [error] [client 127.0.0.1] ファイル "/usr/lib/python2.7/logging/__init__.py"、924 行目、_open
[Tue Jun 11 17:22:59 2013] [error] [client 127.0.0.1] stream = open(self.baseFilename, self.mode)
[2013 年 6 月 11 日火曜日 17:22:59] [エラー] [クライアント 127.0.0.1] IOError: [Errno 13] 許可が拒否されました: '/genetic.log'

ログを作成したい特定のフォルダーのアクセス許可を確認しましたが、それでもエラーが発生します。私のコードは次のとおりです:(名前はmainLCF.pyです)

ロギングのインポート
システムをインポート


logging.basicConfig(filename='genetic.log',level=logging.DEBUG,format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M: %S %p')
logging.debug("遺伝的アルゴリズムの開始")

sys.path.append("/home/ai/Desktop/home/ubuntu/LCF/ws_code")

輸入黒板
pyevolve インポートから *
def eval_func(染色体):
     ここにいくつかの機能

私のシステムのファイル構造は次のとおりです。

/
 家
  愛
   デスクトップ
     家
      Ubuntu
       LCF
        ws_code GA-LCF
           blackboard.py メイン-LCF.py

ws_code にある別の関数 lcf.py から mainLCF.py を呼び出しています。

4

3 に答える 3

1

logging.handlers python module を使用して Logfile パスを変更する必要があります。私の場合、次のことを行いました:

import logging
from logging.handlers import RotatingFileHandler
 import  blackboard

WEBAPP_CONSTANTS = {
'LOGFILE': '/home/ai/Desktop/home/ubuntu/LCF/GA-LCF/ga.log',
}
def getWebAppConstants(constant):
     return WEBAPP_CONSTANTS.get(constant, False)

LOGFILE = getWebAppConstants('LOGFILE')
log_handler = RotatingFileHandler(LOGFILE, maxBytes=1048576, backupCount=5)
log_handler.setFormatter(logging.Formatter( '%(asctime)s %(levelname)s: %(message)s ' '[in %(pathname)s:%(lineno)d]'))
applogger = logging.getLogger("GA")
applogger.setLevel(logging.DEBUG)
applogger.addHandler(log_handler)
applogger.debug("Starting of Genetic Algorithm")

from pyevolve import *

def eval_func(chromosome):
     some function here

そしてそれはうまくいきました。ただし、以前にルートディレクトリでgenetic.logを作成しようとした理由はまだわかりません。

于 2013-06-12T06:02:07.013 に答える
0

ロギングがログファイルを として開こうとしたよう/genetic.logです。ファイル名をキーワード引数として渡すと、現在の作業ディレクトリに基づいてファイル名を絶対パスに展開するに渡す がlogging.basicConfig作成されます。したがって、ルートディレクトリにいるか、コードが現在の作業ディレクトリを変更しています。FileHandleros.path.abspath

于 2013-06-11T12:33:36.900 に答える