2014-09-13 3 views
0

웹 응용 프로그램 오류/예외를 파일 및 전자 메일에 기록하려고합니다. 파일 로깅은 작동하지만 전자 메일은 전송되지 않습니다. 파이썬 버전은 3.4입니다.Python 로깅 모듈이 전자 메일을 보내지 않습니다.

코드 : 내가 잘못

# Filename: my_app/log.py 

import logging 
import logging.handlers 
from . import config 

LOG_FILENAME = '{}/logs/app.log'.format(config.module_path) 

# Logger and it's output level 
app_logger = logging.getLogger('my_app') 
app_logger.setLevel(logging.DEBUG) 

# File handler 
file_handler = logging.handlers.RotatingFileHandler(
    LOG_FILENAME, maxBytes=50000, backupCount=2) 

# Add smtp handler 
email_info = { 
    "mailhost": '{}:{}'.format(config.email["host"], config.email["port"]), 
    "fromaddr": ['[email protected]'], 
    "toaddrs": ['[email protected]'], 
    "subject": 'Kraken escaped!', 
    "credentials": (config.email["username"], config.email["passwd"]), 
    "secure":(), 
} 
smtp_handler = logging.handlers.SMTPHandler(**email_info) 

formatter = logging.Formatter(
    '<%(asctime)s - %(name)s - %(levelname)s> %(message)s') 

file_handler.setFormatter(formatter) 
smtp_handler.setFormatter(formatter) 

app_logger.addHandler(file_handler) 
app_logger.addHandler(smtp_handler) 






# Filename: my_app/delivery/controllers.py 

import logging 

logger = logging.getLogger(__name__) 

# ... and when exceptions occurs I do following (in except statement) 

logger.exception(exc) 

# As I've said - it gets logged to a file, but email is not sent (fails silently?). 

을 뭐하는 거지?

+0

는 "안전한"'봤어 : 대신 None'가' "보안"()'? –

+0

@AnthonyKong, 예, 시도했습니다. 또한 '안전하지 않은'시도. 아무것도 바뀌지 않습니다. – egis

답변

0

그래서 ... 더 자세히 문서를 읽어야합니다. 포트가 'default'가 아니면 mailhost 인수는 'hostname : port'문자열이 아닌 (hostname, port) 튜플이어야합니다.

수정 다음입니다 :

email_info = { 
    "mailhost": (config.email["host"], config.email["port"]), 
    #.... 
} 
관련 문제