Example #1
0
def init_profile_logger():
    """
    Sets up the profiling logger, if it hasn't already been set up.
    """
    global _profile_log

    enabled = getattr(settings, 'LOGGING_ENABLED', False)
    log_directory = getattr(settings, 'LOGGING_DIRECTORY', None)
    log_name = getattr(settings, 'LOGGING_NAME', None)

    if (enabled and log_directory and log_name and not _profile_log and
        getattr(settings, "LOGGING_ALLOW_PROFILING", False)):

        filename = os.path.join(log_directory, log_name + ".prof")

        if sys.platform == 'win32':
            handler = logging.FileHandler(filename)
        else:
            handler = WatchedFileHandler(filename)

        handler.setLevel(logging.INFO)
        handler.setFormatter(logging.Formatter("%(asctime)s %(message)s"))

        _profile_log = logging.getLogger("profile")
        _profile_log.addHandler(handler)
Example #2
0
def init_logging():
    """
    Sets up the main loggers, if they haven't already been set up.
    """
    global _logging_setup

    if _logging_setup:
        return

    enabled = getattr(settings, 'LOGGING_ENABLED', False)
    log_directory = getattr(settings, 'LOGGING_DIRECTORY', None)
    log_name = getattr(settings, 'LOGGING_NAME', None)

    if not enabled or not log_directory or not log_name:
        return

    log_level_name = getattr(settings, 'LOGGING_LEVEL',
                             DEFAULT_LOG_LEVEL)
    log_level = logging.getLevelName(log_level_name)
    format_str = getattr(settings, 'LOGGING_LINE_FORMAT',
                         DEFAULT_LINE_FORMAT)

    log_path = os.path.join(log_directory, log_name + ".log")

    try:
        if sys.platform == 'win32':
            handler = logging.FileHandler(log_path)
        else:
            handler = WatchedFileHandler(log_path)

        handler.setLevel(log_level)
        handler.setFormatter(logging.Formatter(format_str))

        root = logging.getLogger('')
        root.addHandler(handler)
        root.setLevel(log_level)
    except IOError:
        logging.basicConfig(
            level=log_level,
            format=format_str,
        )
        logging.warning("Could not open logfile %s. Logging to stderr",
                        log_path)

    if settings.DEBUG:
        # In DEBUG mode, log to the console as well.
        console_log = logging.StreamHandler()
        console_log.setLevel(log_level)
        console_log.setFormatter(logging.Formatter(format_str))
        logging.getLogger('').addHandler(console_log)

    logging.info("Logging to %s with a minimum level of %s",
                 log_path, log_level_name)

    _logging_setup = True
Example #3
0
def initLogger(aLoggerName, aLogFileName, anAppName, aLogLevelStr):
    """ Initialize logger """
    myLogger = logging.getLogger(aLoggerName)
    if sys.platform == 'win32':
        myHandler = logging.FileHandler(aLogFileName)
    else:
        try:
            from logging import WatchedFileHandler
        except ImportError:
            from .logger_compatibility import WatchedFileHandler
        myHandler = WatchedFileHandler(aLogFileName)
    myHandler.setFormatter(logging.Formatter('%(asctime)s <' +
                                             str(os.getpid()) +
                                             '> [%(levelname)s] %(module)s.%(funcName)s: %(message)s'))
    myLogger.addHandler(myHandler)
    myLogLevelStr = _parseLogLevel(aLogLevelStr)
    myLogger.setLevel(myLogLevelStr)
    myLogger.info('******************** %s. Logging Started ********************' % anAppName)
    return myLogger
Example #4
0
def init_profile_logger():
    """
    Sets up the profiling logger, if it hasn't already been set up.
    """
    global _profile_log

    enabled = getattr(settings, 'LOGGING_ENABLED', False)
    log_directory = getattr(settings, 'LOGGING_DIRECTORY', None)
    log_name = getattr(settings, 'LOGGING_NAME', None)

    if (enabled and log_directory and log_name and not _profile_log
            and getattr(settings, "LOGGING_ALLOW_PROFILING", False)):

        filename = os.path.join(log_directory, log_name + ".prof")

        if sys.platform == 'win32':
            handler = logging.FileHandler(filename)
        else:
            handler = WatchedFileHandler(filename)

        handler.setLevel(logging.INFO)
        handler.setFormatter(logging.Formatter("%(asctime)s %(message)s"))

        _profile_log = logging.getLogger("profile")
        _profile_log.addHandler(handler)
Example #5
0
def init_logging():
    """
    Sets up the main loggers, if they haven't already been set up.
    """
    global _logging_setup

    if _logging_setup:
        return

    enabled = getattr(settings, 'LOGGING_ENABLED', False)
    log_directory = getattr(settings, 'LOGGING_DIRECTORY', None)
    log_name = getattr(settings, 'LOGGING_NAME', None)

    if not enabled or not log_directory or not log_name:
        return

    log_level_name = getattr(settings, 'LOGGING_LEVEL', DEFAULT_LOG_LEVEL)
    log_level = logging.getLevelName(log_level_name)
    request_format_str = getattr(settings, 'LOGGING_REQUEST_FORMAT',
                                 DEFAULT_REQUEST_FORMAT)
    format_str = getattr(settings, 'LOGGING_LINE_FORMAT', DEFAULT_LINE_FORMAT)

    log_path = os.path.join(log_directory, log_name + ".log")

    formatter = RequestLogFormatter(request_format_str, format_str)

    try:
        if sys.platform == 'win32':
            handler = logging.FileHandler(log_path)
        else:
            handler = WatchedFileHandler(log_path)

        handler.setLevel(log_level)
        handler.setFormatter(formatter)

        root.addHandler(handler)
        root.setLevel(log_level)
    except IOError:
        logging.basicConfig(
            level=log_level,
            format=format_str,
        )
        logging.warning("Could not open logfile %s. Logging to stderr",
                        log_path)

    if settings.DEBUG:
        # In DEBUG mode, log to the console as well.
        console_log = logging.StreamHandler()
        console_log.setLevel(log_level)
        console_log.setFormatter(formatter)
        root.addHandler(console_log)

        logging.debug("Logging to %s with a minimum level of %s", log_path,
                      log_level_name)

    _logging_setup = True
Example #6
0
def paste_text():
    p = subprocess.Popen(["xsel", "-b", "-o"],
                         stdout=subprocess.PIPE,
                         close_fds=True)
    stdout, stderr = p.communicate()
    return stdout.decode("utf-8")


app = Flask("httpclip")
if os.environ.get("HTTPCLIP_SETTINGS"):
    app.config.from_envvar("HTTPCLIP_SETTINGS")
if app.config.get("HTTPCLIP_LOGFILE", None):
    from logging import WatchedFileHandler
    app.logger.addHandler(
        WatchedFileHandler(app.config.get("HTTPCLIP_LOGFILE"),
                           encoding="utf-8"))
verbose_logging = app.config.get("HTTPCLIP_VERBOSELOGGING", False)


@app.route("/", methods=("GET", ))
def index():
    response = make_response(render_template("index.html"), 200)
    response.headers["Content-type"] = "text/html"
    return response


@app.route("/clipboard/get", methods=("GET", ))
def clipboard_get():
    text = paste_text()
    if verbose_logging:
        log_text = text