joshmarshall/tornadorpc

Adding logs for my custom functions?

gamesbook opened this issue · 1 comments

I'd like to be able to create log messages for my custom functions, and also set the appropriate level for the server at startup time; so, as an example:

import logging
from tornadorpc.json import JSONRPCHandler
from tornadorpc import private, start_server

class Tree(object):

    def power(self, base, power, modulo=None):
        try:
            result = pow(base, power, modulo)
            return result
        except Exception as err:
            log.error(err)
        return None

    def _private(self):
        # Won't be callable
        log.debug('private call')
        return False

class Handler(JSONRPCHandler):

    tree = Tree()

    def add(self, x, y):
        return x+y

    def ping(self, obj):
        return obj

server_log = logging.basicConfig(level=logging.WARN, format="%(asctime)s:%(levelname)s:%(message)s")
start_server(Handler, port=8080, log=server_log)

Is this already do-able in some other way? If so, how?

After reading the tornado docs, I see this is do-able. In the startup code for the server (e.g. in the __main__ function):

    import tornado.options
    tornado.options.parse_command_line()

Then at runtime, choose the appropriate log level:

python websocket_server.py --logging=info