def setup_logging(in_downloader=False): if in_downloader: if 'MIRO_IN_UNIT_TESTS' in os.environ: level = logging.WARN elif os.environ.get('MIRO_DEBUGMODE', '') == True: level = logging.DEBUG else: level = logging.INFO logging.basicConfig(level=level, format='%(asctime)s %(levelname)-8s %(message)s', stream=sys.stderr) pathname = os.environ.get("DEMOCRACY_DOWNLOADER_LOG") if not pathname: return else: if app.debugmode: level = logging.DEBUG else: level = logging.INFO logging.basicConfig(level=level, format=FORMAT) pathname = app.config.get(prefs.LOG_PATHNAME) rotater = ApatheticRotatingFileHandler(pathname, mode="a", maxBytes=100000, backupCount=5) formatter = logging.Formatter(FORMAT) rotater.setLevel(level) rotater.setFormatter(formatter) logger = logging.getLogger('') logger.addHandler(rotater) rotater.doRollover() try: for record in prelogger.remove(): logger.handle(record) except ValueError: logging.debug("No records from prelogger.") if app.debugmode: stdouthandler = logging.StreamHandler(sys.stdout) stdouthandler.setLevel(level) stdouthandler.setFormatter(formatter) logger.addHandler(stdouthandler) else: sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') logging.info("Logging set up to %s at level %s", pathname, level)
def setup_logging(in_downloader=False): if in_downloader: if 'MIRO_IN_UNIT_TESTS' in os.environ: level = logging.WARN elif os.environ.get('MIRO_DEBUGMODE', '') == True: level = logging.DEBUG else: level = logging.INFO logging.basicConfig(level=level, format='%(asctime)s %(levelname)-8s %(message)s', stream=sys.stderr) pathname = os.environ.get("DEMOCRACY_DOWNLOADER_LOG") if not pathname: return else: if app.debugmode: level = logging.DEBUG else: level = logging.INFO logging.basicConfig(level=level, format=FORMAT) pathname = app.config.get(prefs.LOG_PATHNAME) rotater = ApatheticRotatingFileHandler( pathname, mode="a", maxBytes=100000, backupCount=5) formatter = logging.Formatter(FORMAT) rotater.setLevel(level) rotater.setFormatter(formatter) logger = logging.getLogger('') logger.addHandler(rotater) rotater.doRollover() try: for record in prelogger.remove(): logger.handle(record) except ValueError: logging.debug("No records from prelogger.") if app.debugmode: stdouthandler = logging.StreamHandler(sys.stdout) stdouthandler.setLevel(level) stdouthandler.setFormatter(formatter) logger.addHandler(stdouthandler) else: sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') logging.info("Logging set up to %s at level %s", pathname, level)
def setup_logging(pathname, main_process=False): if 'MIRO_IN_UNIT_TESTS' in os.environ: level = logging.WARN elif (os.environ.get('MIRO_DEBUGMODE', '') == True or app.debugmode): level = logging.DEBUG else: level = logging.INFO rotater = ApatheticRotatingFileHandler(pathname, mode="a", maxBytes=100000, backupCount=5) formatter = logging.Formatter(FORMAT) rotater.setFormatter(formatter) logger = logging.getLogger('') logger.addHandler(rotater) logger.setLevel(level) rotater.doRollover() if main_process: # If it was redirected (by py2exe) then reset stdout/stderr to the # AutoLoggingStream. Otherwise, we do actually want to output to # console and so leave it untouched. Just add a log handler for it. # For release builds we don't care and just redirect everything for # the console to the log. if app.debugmode: redirected = sys.stdout != sys.__stdout__ if redirected: sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') else: stdouthandler = logging.StreamHandler(sys.stdout) stdouthandler.setFormatter(formatter) logger.addHandler(stdouthandler) else: sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') try: for record in prelogger.remove(): logger.handle(record) except ValueError: logging.debug("No records from prelogger.") logging.info("Logging set up to %s at level %s", pathname, level)
def setup_logging(pathname, main_process=False): if 'MIRO_IN_UNIT_TESTS' in os.environ: level = logging.WARN elif (os.environ.get('MIRO_DEBUGMODE', '') == True or app.debugmode): level = logging.DEBUG else: level = logging.INFO rotater = ApatheticRotatingFileHandler( pathname, mode="a", maxBytes=100000, backupCount=5) formatter = logging.Formatter(FORMAT) rotater.setFormatter(formatter) logger = logging.getLogger('') logger.addHandler(rotater) logger.setLevel(level) rotater.doRollover() if main_process: # If it was redirected (by py2exe) then reset stdout/stderr to the # AutoLoggingStream. Otherwise, we do actually want to output to # console and so leave it untouched. Just add a log handler for it. # For release builds we don't care and just redirect everything for # the console to the log. if app.debugmode: redirected = sys.stdout != sys.__stdout__ if redirected: sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') else: stdouthandler = logging.StreamHandler(sys.stdout) stdouthandler.setFormatter(formatter) logger.addHandler(stdouthandler) else: sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') try: for record in prelogger.remove(): logger.handle(record) except ValueError: logging.debug("No records from prelogger.") logging.info("Logging set up to %s at level %s", pathname, level)
def setup_logging(in_downloader=False): global _loggingSetup if _loggingSetup: return if in_downloader: if os.environ.get('MIRO_APP_VERSION', "").endswith("git"): level = logging.DEBUG else: level = logging.INFO logging.basicConfig(level=level, stream=sys.stderr) pathname = os.environ.get("DEMOCRACY_DOWNLOADER_LOG") if not pathname: _loggingSetup = True return else: level = logging.DEBUG pathname = app.config.get(prefs.LOG_PATHNAME) logging.basicConfig(level=level, stream=sys.stdout) logger = logging.getLogger('') # logger.setLevel(level) rotater = ApatheticRotatingFileHandler( pathname, mode="a", maxBytes=100000, backupCount=5) rotater.setLevel(level) formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s') rotater.setFormatter(formatter) logger.addHandler(rotater) rotater.doRollover() try: for record in prelogger.remove(): logger.handle(record) except ValueError: logging.info("No records from prelogger.") sys.stdout = AutoLoggingStream(logging.warn, '(from stdout) ') sys.stderr = AutoLoggingStream(logging.error, '(from stderr) ') logging.info("Logging set up to %s at level %s", pathname, level) _loggingSetup = True