Commit 470cebc6 authored by mitshel's avatar mitshel
Browse files

Доработка записи в log-файл. Введены параметры конфигурации logfile и loglevel

parent 31936915
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -118,6 +118,14 @@ new_period = 7
# При установке book_shelf = no Книжная полка в главном меню отображаться не будет, также не будет происходить запоминание загружаемых книг
book_shelf = yes

# Настройка логов
# Параметр logfile задает имя файла, куда будут складываться логи (путь задавать не нужно - логи будут находится в папке logs)
# По умолчанию logfile = sopds.log
# loglevel может быть одним из следующих значений: debug, info, warning, error, critical, none. 
# По умолчанию loglevel=none
logfile=sopds.log
loglevel=info

[site]
id=http://sopds.ru/
title=SOPDS.RU | OPDS Catalog

logs/sopds.log

0 → 100644
+16 −0
Original line number Diff line number Diff line
INFO     [2014-04-14 21:25:34,904] Books added      : 0
INFO     [2014-04-14 21:25:34,935] Books skipped    : 5569
INFO     [2014-04-14 21:25:34,936] Books DB entries deleted : 0
INFO     [2014-04-14 21:25:34,936] Books in archives: 0
INFO     [2014-04-14 21:25:34,936] Archives scanned : 35
INFO     [2014-04-14 21:25:34,936] Archives skipped : 127
INFO     [2014-04-14 21:25:34,936] Bad archives     : 0
INFO     [2014-04-14 21:25:34,937] Time estimated:0 hours, 3 minutes, 43 seconds.
2014-04-14 21:48:44,661 INFO     Books added      : 0
2014-04-14 21:48:44,701 INFO     Books skipped    : 5569
2014-04-14 21:48:44,701 INFO     Books DB entries deleted : 0
2014-04-14 21:48:44,702 INFO     Books in archives: 0
2014-04-14 21:48:44,702 INFO     Archives scanned : 35
2014-04-14 21:48:44,703 INFO     Archives skipped : 127
2014-04-14 21:48:44,703 INFO     Bad archives     : 0
2014-04-14 21:48:44,704 INFO     Time estimated:0 hours, 3 minutes, 43 seconds.
+28 −18
Original line number Diff line number Diff line
@@ -39,18 +39,28 @@ else: cfg=sopdscfg.cfgreader(CFG_FILE)

zipf.ZIP_CODEPAGE=cfg.ZIP_CODEPAGE

if cfg.LOGLEVEL!=logging.NOTSET:
    # Создаем обработчик для записи логов в файл
    fh = logging.FileHandler(cfg.LOGFILE)
    fh.setLevel(cfg.LOGLEVEL)

if VERBOSE:
   logging.basicConfig(level = logging.DEBUG)
   # Создадим обработчик для вывода логов на экран с максимальным уровнем вывода
   ch = logging.StreamHandler()
   ch.setLevel(logging.DEBUG)

logformat='%(asctime)s %(levelname)-8s %(message)s'
if VERBOSE:
   logging.basicConfig(format = logformat, level = logging.DEBUG, handlers=(fh,ch))
else:
   logging.basicConfig(level = logging.INFO)
   logging.basicConfig(format = logformat, level = logging.INFO, handlers=(fh,))

logging.info('OPTIONS SET')
if cfg.CONFIGFILE!=None:     logging.info('configfile = '+cfg.CONFIGFILE)
if cfg.ROOT_LIB!=None:       logging.info('root_lib = '+cfg.ROOT_LIB)
if cfg.FB2TOEPUB_PATH!=None: logging.info('fb2toepub = '+cfg.FB2TOEPUB_PATH)
if cfg.FB2TOMOBI_PATH!=None: logging.info('fb2tomobi = '+cfg.FB2TOMOBI_PATH)
if cfg.TEMP_DIR!=None:       logging.info('temp_dir = '+cfg.TEMP_DIR)
logging.debug('OPTIONS SET')
if cfg.CONFIGFILE!=None:     logging.debug('configfile = '+cfg.CONFIGFILE)
if cfg.ROOT_LIB!=None:       logging.debug('root_lib = '+cfg.ROOT_LIB)
if cfg.FB2TOEPUB_PATH!=None: logging.debug('fb2toepub = '+cfg.FB2TOEPUB_PATH)
if cfg.FB2TOMOBI_PATH!=None: logging.debug('fb2tomobi = '+cfg.FB2TOMOBI_PATH)
if cfg.TEMP_DIR!=None:       logging.debug('temp_dir = '+cfg.TEMP_DIR)

#############################################################################
#
@@ -235,20 +245,20 @@ opdsdb.update_double()
opdsdb.closeDB()

t2=datetime.timedelta(seconds=time.time())
print()
print('Books added      : ',books_added)
print('Books skipped    : ',books_skipped)
logging.info('Books added      : '+str(books_added))
logging.info('Books skipped    : '+str(books_skipped))
if cfg.DELETE_LOGICAL:
   print('Books deleted    : ',books_deleted)
   logging.info('Books deleted    : '+str(books_deleted))
else:
   print('Books DB entries deleted : ',books_deleted)
print('Books in archives: ',books_in_archives)
print('Archives scanned : ',arch_scanned)
print('Archives skipped : ',arch_skipped)
print('Bad archives     : ',bad_archives)
   logging.info('Books DB entries deleted : '+str(books_deleted))
logging.info('Books in archives: '+str(books_in_archives))
logging.info('Archives scanned : '+str(arch_scanned))
logging.info('Archives skipped : '+str(arch_skipped))
logging.info('Bad archives     : '+str(bad_archives))

t=t2-t1
seconds=t.seconds%60
minutes=((t.seconds-seconds)//60)%60
hours=t.seconds//3600
print('Time estimated:',hours,' hours, ',minutes,' minutes, ',seconds,' seconds.')
logging.info('Time estimated:'+str(hours)+' hours, '+str(minutes)+' minutes, '+str(seconds)+' seconds.')
+12 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
import os
import sys
import codecs
import logging

##########################################################################
# Глобальные переменные
@@ -14,6 +15,9 @@ CFG_PATH_DEFAULT=ROOT_PATH+os.path.sep+'conf'+os.path.sep+CFG_FILENAME
CFG_PATH=CFG_PATH_DEFAULT
COVER_PATH=os.path.join(ROOT_PATH,'covers')
NOCOVER_IMG='nocover.jpg'
LOG_PATH=os.path.join(ROOT_PATH,'logs')

loglevels={'debug':logging.DEBUG,'info':logging.INFO,'warning':logging.WARNING,'error':logging.ERROR,'critical':logging.CRITICAL,'none':logging.NOTSET}

###########################################################################
# Считываем конфигурацию из конфигурационного файла
@@ -71,6 +75,14 @@ class cfgreader:
       self.TEMP_DIR=config.getdefault(CFG_S_GLOBAL,'temp_dir','/tmp')
       self.TEMP_DIR=os.path.normpath(self.TEMP_DIR)
       
       logfile=config.getdefault(CFG_S_GLOBAL,'logfile','sopds.log')
       self.LOGFILE=os.path.join(LOG_PATH,logfile)
       loglevel=config.getdefault(CFG_S_GLOBAL,'loglevel','none')
       if loglevel.lower() in loglevels:
           self.LOGLEVEL=loglevels[loglevel.lower()]
       else:
           self.LOGLEVEL=logging.NOTSET
   
       self.DB_NAME=config.get(CFG_S_GLOBAL,'db_name')
       self.DB_USER=config.get(CFG_S_GLOBAL,'db_user')
       self.DB_PASS=config.get(CFG_S_GLOBAL,'db_pass')
Loading