mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Merge pull request #2480 from avaris/serve-log
Refactor pelican.server logging
This commit is contained in:
commit
0e3c8cede7
1 changed files with 21 additions and 16 deletions
|
|
@ -17,6 +17,9 @@ from six.moves import BaseHTTPServer
|
||||||
from six.moves import SimpleHTTPServer as srvmod
|
from six.moves import SimpleHTTPServer as srvmod
|
||||||
from six.moves import urllib
|
from six.moves import urllib
|
||||||
|
|
||||||
|
from pelican.log import init as init_logging
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def parse_arguments():
|
def parse_arguments():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
|
|
@ -71,22 +74,23 @@ class ComplexHTTPRequestHandler(srvmod.SimpleHTTPRequestHandler):
|
||||||
self.path = self.get_path_that_exists(original_path)
|
self.path = self.get_path_that_exists(original_path)
|
||||||
|
|
||||||
if not self.path:
|
if not self.path:
|
||||||
logging.warning("Unable to find `%s` or variations.",
|
|
||||||
original_path)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
logging.info("Found `%s`.", self.path)
|
|
||||||
srvmod.SimpleHTTPRequestHandler.do_GET(self)
|
srvmod.SimpleHTTPRequestHandler.do_GET(self)
|
||||||
|
|
||||||
def get_path_that_exists(self, original_path):
|
def get_path_that_exists(self, original_path):
|
||||||
# Try to strip trailing slash
|
# Try to strip trailing slash
|
||||||
original_path = original_path.rstrip('/')
|
original_path = original_path.rstrip('/')
|
||||||
# Try to detect file by applying various suffixes
|
# Try to detect file by applying various suffixes
|
||||||
|
tries = []
|
||||||
for suffix in self.SUFFIXES:
|
for suffix in self.SUFFIXES:
|
||||||
path = original_path + suffix
|
path = original_path + suffix
|
||||||
if os.path.exists(self.translate_path(path)):
|
if os.path.exists(self.translate_path(path)):
|
||||||
return path
|
return path
|
||||||
logging.info("Tried to find `%s`, but it doesn't exist.", path)
|
tries.append(path)
|
||||||
|
logger.warning("Unable to find `%s` or variations:\n%s",
|
||||||
|
original_path,
|
||||||
|
'\n'.join(tries))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def guess_type(self, path):
|
def guess_type(self, path):
|
||||||
|
|
@ -108,11 +112,12 @@ class RootedHTTPServer(BaseHTTPServer.HTTPServer):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
logging.warning("'python -m pelican.server' is deprecated. The "
|
init_logging(level=logging.INFO)
|
||||||
"Pelican development server should be run via "
|
logger.warning("'python -m pelican.server' is deprecated.\nThe "
|
||||||
"'pelican --listen' or 'pelican -l' (this can be combined "
|
"Pelican development server should be run via "
|
||||||
"with regeneration as 'pelican -lr'). Rerun 'pelican-"
|
"'pelican --listen' or 'pelican -l'.\nThis can be combined "
|
||||||
"quickstart' to get new Makefile and tasks.py files.")
|
"with regeneration as 'pelican -lr'.\nRerun 'pelican-"
|
||||||
|
"quickstart' to get new Makefile and tasks.py files.")
|
||||||
args = parse_arguments()
|
args = parse_arguments()
|
||||||
RootedHTTPServer.allow_reuse_address = True
|
RootedHTTPServer.allow_reuse_address = True
|
||||||
try:
|
try:
|
||||||
|
|
@ -123,16 +128,16 @@ if __name__ == '__main__':
|
||||||
httpd.socket, keyfile=args.key,
|
httpd.socket, keyfile=args.key,
|
||||||
certfile=args.cert, server_side=True)
|
certfile=args.cert, server_side=True)
|
||||||
except ssl.SSLError as e:
|
except ssl.SSLError as e:
|
||||||
logging.error("Couldn't open certificate file %s or key file %s",
|
logger.error("Couldn't open certificate file %s or key file %s",
|
||||||
args.cert, args.key)
|
args.cert, args.key)
|
||||||
logging.error("Could not listen on port %s, server %s.",
|
logger.error("Could not listen on port %s, server %s.",
|
||||||
args.port, args.server)
|
args.port, args.server)
|
||||||
sys.exit(getattr(e, 'exitcode', 1))
|
sys.exit(getattr(e, 'exitcode', 1))
|
||||||
|
|
||||||
logging.info("Serving at port %s, server %s.",
|
logger.info("Serving at port %s, server %s.",
|
||||||
args.port, args.server)
|
args.port, args.server)
|
||||||
try:
|
try:
|
||||||
httpd.serve_forever()
|
httpd.serve_forever()
|
||||||
except KeyboardInterrupt as e:
|
except KeyboardInterrupt as e:
|
||||||
logging.info("Shutting down server.")
|
logger.info("Shutting down server.")
|
||||||
httpd.socket.close()
|
httpd.socket.close()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue