2012-05-22 24 views
8

Từ Django documentation, đây là một định dạng ví dụ cho khai thác gỗ:trình định dạng Logging trong django

'formatters': { 
    'verbose': { 
     'format': '%(levelname)s %(asctime)s %(module)s: %(message)s' 
    } 
} 

này in cái gì đó như:

LỖI 2012/05/22 14: 33: 07.261 điểm 42.892 4398727168 hello

Có danh sách các mục bạn có thể đưa vào định dạng chuỗi không? Ví dụ, tôi muốn để có thể xem các chức năng và ứng dụng mà thông điệp đã được tạo ra, ví dụ:

LỖI nhắn thời gian myproject.myapp.views.login_function

Trả lời

19

Từ Python logging module documentation:

  • asctime: 01.235.
    Thời gian có thể đọc được khi LogRecord được tạo. Theo mặc định, biểu mẫu này có dạng '2003-07-08 16: 49: 45,896 ’(các số sau dấu phẩy là phần nghìn giây của thời gian).

  • tạo: %(created)f
    Thời gian khi LogRecord đã được tạo ra (như trả về bởi time.time()).

  • filename: %(filename)s
    phần Tên file của tên đường dẫn.

  • funcname: %(funcName)s
    Tên của chức năng có chứa các cuộc gọi đăng nhập.

  • levelname: %(levelname)s chữ mức khai thác gỗ cho tin nhắn ('DEBUG', 'INFO', 'Chú ý', 'LỖI', 'QUAN TRỌNG').

  • levelno: %(levelno)s
    mức ghi Numeric cho tin nhắn (DEBUG, INFO, WARNING, ERROR, QUAN TRỌNG).

  • lineno: số dòng %(lineno)d
    Nguồn nơi các cuộc gọi đăng nhập được ban hành (nếu có).

  • mô-đun: %(module)s
    Module (phần tên của filename).

  • msecs: %(msecs)d
    phần nghìn giây của thời gian khi LogRecord đã được tạo ra.

  • nhắn: %(message)s
    Thông điệp đăng nhập, tính như msg % args. Điều này được đặt khi Formatter.format() được gọi.

  • tên: %(name)s
    Tên của logger sử dụng để ghi lại các cuộc gọi.

  • tên đường dẫn: %(pathname)s
    Full tên đường dẫn của tập tin nguồn mà các cuộc gọi đăng nhập được ban hành (nếu có).

  • quá trình: %(process)d
    Process ID (nếu có).

  • ProcessName: %(processName)s
    tên Process (nếu có).

  • relativeCreated: %(relativeCreated)d
    Thời gian trong mili giây khi LogRecord đã được tạo ra, liên quan đến thời gian module khai thác gỗ đã được nạp.

  • chủ đề: %(thread)d
    Chủ đề ID (nếu có).

  • threadName: %(threadName)s
    Tên Chủ đề (nếu có).

Những lập luận sau đây cũng có sẵn để Formatter.format(), mặc dù họ không dự định được bao gồm trong chuỗi định dạng:

  • args:
    Các tuple của đối số sáp nhập vào msg để sản xuất tin nhắn.

  • exc_info:
    Exception tuple (à la sys.exc_info) hoặc, nếu không có ngoại lệ đã xảy ra, None.

  • msg:
    Chuỗi định dạng được chuyển trong cuộc gọi ghi nhật ký ban đầu. Hợp nhất với args để tạo thông báo hoặc một đối tượng tùy ý (xem Using arbitrary objects as messages).

1

Bước 1. Chỉnh sửa tập tin settings.py của bạn

$ cd mysite 
$ vim mysite/settings.py 
'formatters': { 
    'simple': { 
     'format': '%(levelname)s %(asctime)s %(name)s.%(funcName)s:%(lineno)s- %(message)s' 
    }, 
}, 

Bước2. Bạn nên sử dụng logger trong mã của bạn như thế này:

import logging 
logger = logging.getLogger(__name__) 

def fn1() { 
    logger.info('great!') 
    logger.info(__name__) 
} 

Hy vọng sẽ giúp bạn!

Các vấn đề liên quan