JavaScript не слишком сложен. Вот модуль JavaScript, смоделированный после модуля Python logging
. Он использует JQuery для отправки сообщения журнала на сервер по URL-адресам, таким как /log/debug
или /log/info
.
// logging.js
var logging = {};
logging.log = function log(lvl, msg) {
$.ajax({
url: "/log/" + lvl,
type: "POST",
contentType: "text/plain",
data: msg,
});
};
logging.debug = function debug(msg) {
logging.log("debug", msg);
};
logging.info = function info(msg) {
logging.log("info", msg);
};
logging.warning = function warning(msg) {
logging.log("warning", msg);
};
logging.error = function error(msg) {
logging.log("error", msg);
};
logging.critical = function critical(msg) {
logging.log("critical", msg);
};
return logging;
Чтобы использовать его, просто звоните как logging.info("log message here")
.
Серверный код Python для обработки этих запросов не сложен. Вот отображение URL.
# main.py (some stuff omitted for clarity)
import logging
import wsgiref.handlers
from google.appengine.ext import webapp
urlmap = [(r"/log/(.+)", handlers.LoggingHandler),]
application = webapp.WSGIApplication(urlmap)
wsgiref.handlers.CGIHandler().run(application)
А вот и обработчик журналирования.
# handlers.py
import logging
from google.appengine.ext import webapp
class LoggingHandler(webapp.RequestHandler):
def post(self, lvl):
if lvl not in ("debug", "info", "warning", "error", "critical",):
self.error(404)
self.response.out.write("Unknown log level %s" % lvl)
return
msg = self.request.body
getattr(logging, lvl)(msg)
response = "Message logged: %s %s" % (lvl.upper(), msg))
self.response.out.write(response)