2011-07-15 12 views
1

私はdjangoの初心者です...今、Django-loggingの概念を学んでいます。私の問題は、以下の私のコードで使用したファイルにログメッセージが保存されないことです。Djangoのログ記録メッセージはそれぞれのファイルに保存されていません!

LOGGING = { 
'version': 1, 
'disable_existing_loggers': False, 
'formatters': { 
    'simple': { 
     'format': '%(asctime)s %(levelname)s %(name)s %(message)s' 
    }, 
}, 
'handlers': { 
    'default': { 
     'level':'DEBUG', 
     'class':'logging.handlers.RotatingFileHandler', 
     'filename': '/home/linuxuser/mani/f/logs/msg.log', 
     'maxBytes': 1024*1024*5, # 5 MB 
     'backupCount': 5, 
     'formatter':'simple', 
    }, 
}, 
'loggers': { 
    'sample': { 
     'handlers': ['default'], 
     'level': 'DEBUG', 
     'propagate': True, 
    }, 
} 

}

(私のviews.pyで)

import logging 
import logging.handlers 
from django.conf import settings 
logger = logging.getLogger('sample') 

def empdel(request,id): 
    e = get_object_or_404(emp, pk=id) 
    e.delete() 
    logger.info('A row is deleted successfully !!!') [# here is my prob..this msg is not saved in '/home/linuxuser/mani/f/logs/msg.log' #] 

    return HttpResponseRedirect('/empthanks/') 

殿ログメッセージがそのfile..Plsに保存されていない、なぜ誰も私を与えます解決してもそれはとてもシンプルです...ここで間違っていますか?事前に

おかげ..
マニ

答えて

1

いくつかの質問。

  • /home/linuxuser/mani/f/logs/msg.logに何かが表示されていますか?
  • または、必要なログメッセージはありませんか?あなたが何も見ていない場合
  • そのファイルに書き込む権限がありますか?

ケース2では、これはsettings.pyファイルでは必要ありません。

import logging  
import logging.handlers  
from django.conf import settings  
logging.basicConfig() 

ログティングタプルが必要です。設定の詳細については、djangoのドキュメントを参照してください。

https://docs.djangoproject.com/en/1.3/topics/logging/

+0

:私はちょうどそれfile..I内のメッセージは、私の場合2用/home/linuxuser/mani/f/logs/msg.logで何かを参照してくださいdidntのログを参照しようとしているが、私はログメッセージを見ることができます私の場合1.Ya私はそのファイルに書き込む許可を持っています。事例1のためにうまくいきました。私はあなたが上で与えたものをリンクを通過した後にこのコードを試しています...もう一度悪いgothroughの文書..ありがとうあなたの反応。 – Mani

+0

@mani checkoutこのリンクも役に立つかもしれません。 http://stackoverflow.com/questions/5438642/django-setup-default-logging –

+0

@ Ken:リンクをありがとうが、まだ動作していません.. – Mani

11

あなたのロギング設定のためにこれを試してみて、それが助けかどうかを確認します。

通知disable_existing_loggersはTrueで、デフォルトの ''をロガーに追加しました。ケン@

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'standard': { 
      'format': '%(asctime)s %(levelname)s %(name)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'default': { 
      'level':'DEBUG', 
      'class':'logging.handlers.RotatingFileHandler', 
      'filename': '/home/linuxuser/mani/f/logs/msg.log', 
      'maxBytes': 1024*1024*5, # 5 MB 
      'backupCount': 5, 
      'formatter':'standard', 
     }, 
     'request_handler': { 
       'level':'DEBUG', 
       'class':'logging.handlers.RotatingFileHandler', 
       'filename': 'logs/django_request.log', 
       'maxBytes': 1024*1024*5, # 5 MB 
       'backupCount': 5, 
       'formatter':'standard', 
     }, 
    }, 
    'loggers': { 

     '': { 
      'handlers': ['default'], 
      'level': 'DEBUG', 
      'propagate': True 
     }, 
     'django.request': { # Stop SQL debug from logging to main logger 
      'handlers': ['request_handler'], 
      'level': 'DEBUG', 
      'propagate': False 
     }, 
    } 
} 
+2

@ Ken:Mr.kenken。ありがとう、Mr.kenken ..今働いている...あなたの親切な反応のためにたくさんありがとう。 .Itsは私のログメッセージ(私がコーディングに使用したもの)とそのファイル名にいくつかのデフォルトのメッセージを保存します。例えば:DEBUG django.db.backendsいくつかのSQLクエリ..なぜDEBUG djangoのようなメッセージが自動的に保存されますか?そのファイルにdb.backends?それはDjangoのログのinbuilt関数ですか? – Mani

+0

これはdjangoに組み込まれているので、django.dbの別のロガーを追加して情報を設定するか、djangoの情報を設定するだけで設定を変更することができます。 –

+1

あなたの親切な助けをケンケンケに!!! – Mani

関連する問題