mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Content server: Fix using the Clear logs button preventing the server from restarting until calibre itself is restarted. Fixes #1738433 [Can't start Content Server after Clear Logs](https://bugs.launchpad.net/calibre/+bug/1738433)
This commit is contained in:
parent
8bb6c46314
commit
38b2510ecb
@ -1065,12 +1065,16 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
if getattr(self.server, 'is_running', False):
|
||||
return error_dialog(d, _('Server running'), _(
|
||||
'Cannot clear logs while the server is running. First stop the server.'), show=True)
|
||||
for x in (log_error_file, log_access_file):
|
||||
try:
|
||||
os.remove(x)
|
||||
except EnvironmentError as err:
|
||||
if err.errno != errno.ENOENT:
|
||||
raise
|
||||
if self.server:
|
||||
self.server.access_log.clear()
|
||||
self.server.log.clear()
|
||||
else:
|
||||
for x in (log_error_file, log_access_file):
|
||||
try:
|
||||
os.remove(x)
|
||||
except EnvironmentError as err:
|
||||
if err.errno != errno.ENOENT:
|
||||
raise
|
||||
el.setPlainText(''), al.setPlainText('')
|
||||
|
||||
b.clicked.connect(clear_logs)
|
||||
|
@ -376,6 +376,22 @@ class RotatingStream(object):
|
||||
self.rename(self.filename, '%s.%d' % (self.filename, 1))
|
||||
self.set_output()
|
||||
|
||||
def clear(self):
|
||||
if self.filename in ('/dev/stdout', '/dev/stderr'):
|
||||
return
|
||||
self.stream.close()
|
||||
failed = {}
|
||||
try:
|
||||
os.remove(self.filename)
|
||||
except EnvironmentError as e:
|
||||
failed[self.filename] = e
|
||||
import glob
|
||||
for f in glob.glob(self.filename + '.*'):
|
||||
try:
|
||||
os.remove(f)
|
||||
except EnvironmentError as e:
|
||||
failed[f] = e
|
||||
|
||||
|
||||
class RotatingLog(ServerLog):
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user