2010-10-07 14 views
9

पायथन logging module उपयोग करने के लिए बोझिल है। क्या कोई और सुरुचिपूर्ण विकल्प है? डेस्कटॉप अधिसूचनाओं के साथ एकीकरण एक प्लस होगा।पायथन लॉगिंग विकल्प

+3

होनहार लग रहा है प्रदान करता है: http : //packages.python.org/Logbook – hoju

+1

लॉगिंग मॉड्यूल को बोझिल करने के लिए आपको किन तरीकों से मिलते हैं? आपको इसकी क्षमताओं में कमी क्या है? –

+4

क्या आपने इसका इस्तेमाल किया है? यह पाइथोनिक नहीं है। – hoju

उत्तर

7

आप Twiggy में देख सकते हैं, यह लॉगिंग मॉड्यूल के लिए एक अधिक पायथन विकल्प बनाने का प्रारंभिक चरण प्रयास है।

+9

हे! लॉग -> twig – hoju

+1

मैं सहमत हूं! हा! इसे पाने के लिए मुझे एक सेकंड ले लिया। – synthesizerpatel

+1

मृत लगता है ... आखिरी प्रतिबद्धता एक साल पहले – 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 

आप कंसोल और फ़ाइल के साथ लॉगफ़ाइल विन्यास कर सकते हैं, मुझे नहीं लगता कि डेस्कटॉप notication एक अच्छा विचार है, क्या तुम सांत्वना और लॉगफ़ाइल से लॉग जानकारी देख सकते हैं

3

आप पर एक नज़र है करने के लिए चाहते हो सकता है pysimplelog। यह शुद्ध अजगर, बहुत उपयोग करने के लिए सरल, पिप स्थापना योग्य है और आपको क्या चाहिए

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 

और उन मानकों के साथ, एक 'simplelog.log' फ़ाइल बनाया जाएगा और आप के लिए स्वचालित रूप से अपडेट

+0

+1 अरे वह अच्छा लग रहा है! एक नोट हालांकि: मैं ज्ञात होने से पहले लॉग इन * फ़ंक्शन निश्चित * के बाहर * का उपयोग करने की अनुशंसा नहीं करता [चाहे वह सुरक्षित है] (https://stackoverflow.com/questions/46356672/)। –

संबंधित मुद्दे