Content server: Ignore failure to strftime log entries

This commit is contained in:
Kovid Goyal 2022-02-05 10:36:22 +05:30
parent e903aabf0c
commit affd7be313
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 8 additions and 7 deletions

View File

@ -8,6 +8,7 @@ import errno
import hashlib import hashlib
import os import os
import struct import struct
import time
import uuid import uuid
from collections import namedtuple from collections import namedtuple
from functools import wraps from functools import wraps
@ -21,7 +22,7 @@ from calibre.srv.errors import HTTPSimpleResponse
from calibre.srv.http_request import HTTPRequest, read_headers from calibre.srv.http_request import HTTPRequest, read_headers
from calibre.srv.loop import WRITE from calibre.srv.loop import WRITE
from calibre.srv.utils import ( from calibre.srv.utils import (
HTTP1, HTTP11, Cookie, MultiDict, fast_now_strftime, get_translator_for_lang, HTTP1, HTTP11, Cookie, MultiDict, get_translator_for_lang,
http_date, socket_errors_socket_closed, sort_q_values http_date, socket_errors_socket_closed, sort_q_values
) )
from calibre.utils.monotonic import monotonic from calibre.utils.monotonic import monotonic
@ -549,9 +550,13 @@ class HTTPConnection(HTTPRequest):
ff = self.forwarded_for ff = self.forwarded_for
if ff: if ff:
ff = '[%s] ' % ff ff = '[%s] ' % ff
try:
ts = time.strftime('%d/%b/%Y:%H:%M:%S %z')
except Exception:
ts = 'strftime() failed'
line = '{} port-{} {}{} {} "{}" {} {}'.format( line = '{} port-{} {}{} {} "{}" {} {}'.format(
self.remote_addr, self.remote_port, ff or '', username or '-', self.remote_addr, self.remote_port, ff or '', username or '-',
fast_now_strftime('%d/%b/%Y:%H:%M:%S %z'), ts,
force_unicode(self.request_line or '', 'utf-8'), force_unicode(self.request_line or '', 'utf-8'),
status_code, ('-' if response_size is None else response_size)) status_code, ('-' if response_size is None else response_size))
self.access_log(line) self.access_log(line)

View File

@ -4,7 +4,7 @@
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
import errno, socket, os, time import errno, socket, os
from email.utils import formatdate from email.utils import formatdate
from operator import itemgetter from operator import itemgetter
@ -465,7 +465,3 @@ def get_use_roman():
from calibre.gui2 import config from calibre.gui2 import config
_use_roman = config['use_roman_numerals_for_series_number'] _use_roman = config['use_roman_numerals_for_series_number']
return _use_roman return _use_roman
def fast_now_strftime(fmt):
return as_unicode(time.strftime(fmt), errors='replace')