2010-10-07 36 views
9

Python logging module rất cồng kềnh để sử dụng. Có một sự thay thế thanh lịch hơn? Tích hợp với các thông báo trên màn hình sẽ là một điểm cộng.lựa chọn thay thế khai thác python

+3

Trông hứa hẹn: http : //packages.python.org/Logbook – hoju

+1

Theo cách nào bạn thấy mô-đun đăng nhập trở nên cồng kềnh? Những gì bạn thấy thiếu khả năng của mình? –

+4

bạn đã sử dụng nó chưa? Nó không phải là pythonic. – hoju

Trả lời

7

Bạn có thể xem xét Twiggy, đó là một nỗ lực giai đoạn đầu để xây dựng một giải pháp thay thế pythonic hơn cho mô đun ghi nhật ký.

+9

ha! log -> twig – hoju

+1

Tôi đồng ý! Ha! Đã cho tôi một giây để có được nó. – synthesizerpatel

+1

dường như đã chết ... cam kết cuối cùng đã hơn một năm trước – Tshepang

0
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import logging 
import logging.handlers 
from logging.config import dictConfig 

logger = logging.getLogger(__name__) 

DEFAULT_LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
} 
def configure_logging(logfile_path): 
    """ 
    Initialize logging defaults for Project. 

    :param logfile_path: logfile used to the logfile 
    :type logfile_path: string 

    This function does: 

    - Assign INFO and DEBUG level to logger file handler and console handler 

    """ 
    dictConfig(DEFAULT_LOGGING) 

    default_formatter = logging.Formatter(
     "[%(asctime)s] [%(levelname)s] [%(name)s] [%(funcName)s():%(lineno)s] [PID:%(process)d TID:%(thread)d] %(message)s", 
     "%d/%m/%Y %H:%M:%S") 

    file_handler = logging.handlers.RotatingFileHandler(logfile_path, maxBytes=10485760,backupCount=300, encoding='utf-8') 
    file_handler.setLevel(logging.INFO) 

    console_handler = logging.StreamHandler() 
    console_handler.setLevel(logging.DEBUG) 

    file_handler.setFormatter(default_formatter) 
    console_handler.setFormatter(default_formatter) 

    logging.root.setLevel(logging.DEBUG) 
    logging.root.addHandler(file_handler) 
    logging.root.addHandler(console_handler) 



[31/10/2015 22:00:33] [DEBUG] [yourmodulename] [yourfunction_name():9] [PID:61314 TID:140735248744448] this is logger infomation from hello module 

bạn có thể cấu hình logfile với giao diện điều khiển và tập tin, tôi không nghĩ rằng máy tính để bàn notication là một ý tưởng tốt, bạn có thể xem các thông tin đăng nhập từ giao diện điều khiển và log

3

Bạn có thể muốn có một cái nhìn tại pysimplelog. Đó là trăn tinh khiết, rất đơn giản để sử dụng, pip có thể cài đặt và cung cấp những gì bạn cần

from pysimplelog import Logger 
L=Logger() 
print L 
>>> Logger (Version 0.2.1) 
>>> log type |log name |level  |std flag |file flag | 
>>> ----------|----------|----------|----------|----------| 
>>> debug  |DEBUG  |0.0  |True  |True  | 
>>> info  |INFO  |10.0  |True  |True  | 
>>> warn  |WARNING |20.0  |True  |True  | 
>>> error  |ERROR  |30.0  |True  |True  | 
>>> critical |CRITICAL |100.0  |True  |True  | 

L.info('I am an info') 
>>> 2016-09-26 15:01:17 - logger <INFO> I am an info 

L.warn('I am a warning') 
>>> 2016-09-26 15:01:17 - logger <WARNING> I am a warning 

L.error('I am an error') 
>>> 2016-09-26 15:01:17 - logger <ERROR> I am an error 

và với những thông số này, một tập tin 'simplelog.log' sẽ được tạo ra và được cập nhật tự động cho bạn

+0

+1 Xin chào! Một lưu ý tuy nhiên: Tôi sẽ không khuyên bạn nên sử dụng đăng nhập * bên ngoài của một defintion chức năng * trước khi nó được biết đến [cho dù đó là an toàn] (https://stackoverflow.com/questions/46356672/). –