Skip to content

Commit 0e3af46

Browse files
authored
Removed logfiles (sezanzeb#418)
1 parent 8ed0a72 commit 0e3af46

File tree

7 files changed

+40
-60
lines changed

7 files changed

+40
-60
lines changed

.github/ISSUE_TEMPLATE/autoloading-not-working.md

+11-9
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@ assignees: ''
99

1010
Please install the newest version from source to see if the problem has already been solved.
1111

12-
Share some logs please:
12+
**System Information and logs**
1313

1414
1. `input-remapper-control --version`
1515
2. which linux distro (ubuntu 20.04, manjaro, etc.)
16-
3. `echo $XDG_SESSION_TYPE`
17-
4. which desktop environment (gnome, plasma, xfce4, etc.)
18-
5. `sudo ls -l /proc/1/exe`
16+
3. which desktop environment (gnome, plasma, xfce4, etc.)
17+
4. `sudo ls -l /proc/1/exe` to check if you are using systemd
18+
5. `cat ~/.config/input-remapper/config.json` to see if the "autoload" config is written correctly
19+
6. `systemctl status input-remapper -n 50` the service has to be running
1920

20-
6. `cat ~/.config/input-remapper/config.json`
21-
7. `input-remapper-control --command hello`
22-
8. `systemctl status input-remapper -n 50`
23-
9. `sudo pkill -f input-remapper-service && sudo input-remapper-service -d & sleep 2 && input-remapper-control --command autoload`, are your keys mapped now?
24-
10. (while the previous command is still running) `sudo evtest` and search for a device suffixed by "mapped". Select it, does it report any events? Share the output.
21+
**Testing the setup**
22+
23+
1. `input-remapper-control --command hello`
24+
2. `sudo pkill -f input-remapper-service && sudo input-remapper-service -d & sleep 2 && input-remapper-control --command autoload`, are your keys mapped now?
25+
3. (while the previous command is still running) `sudo evtest` and search for a device suffixed by "mapped". Select it, does it report any events? Share the output.
26+
4. `sudo udevadm control --log-priority=debug && sudo udevadm control --reload-rules && journalctl -f | grep input-remapper`, now plug in the device that should autoload

bin/input-remapper-control

+1-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import argparse
2727
import logging
2828
import subprocess
2929

30-
from inputremapper.logger import logger, update_verbosity, log_info, add_filehandler
30+
from inputremapper.logger import logger, update_verbosity, log_info
3131
from inputremapper.configs.migrations import migrate
3232
from inputremapper.configs.global_config import global_config
3333

@@ -223,8 +223,6 @@ def main(options):
223223
if options.debug:
224224
update_verbosity(True)
225225

226-
add_filehandler('/var/log/input-remapper-control')
227-
228226
if options.version:
229227
log_info()
230228
return

bin/input-remapper-service

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import sys
2626
from argparse import ArgumentParser
2727

28-
from inputremapper.logger import update_verbosity, log_info, add_filehandler
28+
from inputremapper.logger import update_verbosity, log_info
2929

3030

3131
if __name__ == '__main__':
@@ -46,7 +46,6 @@ if __name__ == '__main__':
4646
# import input-remapper stuff after setting the log verbosity
4747
from inputremapper.daemon import Daemon
4848

49-
add_filehandler()
5049
if not options.hide_info:
5150
log_info('input-remapper-service')
5251

data/input-remapper.service

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ Description=Service to inject keycodes without the GUI application
33
# dbus is required for ipc between gui and input-remapper-control
44
Requires=dbus.service
55
After=dbus.service
6-
RequiresMountsFor=/var/log
76

87
[Service]
98
Type=dbus

inputremapper/configs/migrations.py

+16-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333

3434
from inputremapper.logger import logger, VERSION
3535
from inputremapper.user import HOME
36-
from inputremapper.configs.paths import get_preset_path, mkdir, CONFIG_PATH
36+
from inputremapper.configs.paths import get_preset_path, mkdir, CONFIG_PATH, remove
3737
from inputremapper.configs.system_mapping import system_mapping
3838
from inputremapper.injection.global_uinputs import global_uinputs
39-
from inputremapper.injection.macros.parse import parse, is_this_a_macro
39+
from inputremapper.injection.macros.parse import is_this_a_macro
4040

4141

4242
def all_presets():
@@ -244,6 +244,18 @@ def _otherwise_to_else():
244244
file.write("\n")
245245

246246

247+
def _remove_logs():
248+
"""We will try to rely on journalctl for this in the future."""
249+
try:
250+
remove(f"{HOME}/.log/input-remapper")
251+
remove("/var/log/input-remapper")
252+
remove("/var/log/input-remapper-control")
253+
except Exception as error:
254+
logger.debug("Failed to remove deprecated logfiles: %s", str(error))
255+
# this migration is not important. Continue
256+
pass
257+
258+
247259
def migrate():
248260
"""Migrate config files to the current release."""
249261
v = config_version()
@@ -264,6 +276,8 @@ def migrate():
264276
if v < pkg_resources.parse_version("1.4.1"):
265277
_otherwise_to_else()
266278

279+
_remove_logs()
280+
267281
# add new migrations here
268282

269283
if v < pkg_resources.parse_version(VERSION):

inputremapper/logger.py

-26
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,6 @@ def debug_key(self, key, msg, *args):
7777

7878
logging.Logger.debug_key = debug_key
7979

80-
LOG_PATH = (
81-
"/var/log/input-remapper"
82-
if os.access("/var/log", os.W_OK)
83-
else f"{HOME}/.log/input-remapper"
84-
)
8580

8681
logger = logging.getLogger("input-remapper")
8782

@@ -297,24 +292,3 @@ def trim_logfile(log_path):
297292
raise
298293
except Exception as e:
299294
logger.error('Failed to trim logfile: "%s"', str(e))
300-
301-
302-
def add_filehandler(log_path=LOG_PATH):
303-
"""Clear the existing logfile and start logging to it."""
304-
try:
305-
log_path = os.path.expanduser(log_path)
306-
os.makedirs(os.path.dirname(log_path), exist_ok=True)
307-
308-
if os.path.isdir(log_path):
309-
# used to be a folder < 0.8.0
310-
shutil.rmtree(log_path)
311-
312-
trim_logfile(log_path)
313-
314-
file_handler = logging.FileHandler(log_path)
315-
file_handler.setFormatter(ColorfulFormatter())
316-
logger.addHandler(file_handler)
317-
318-
logger.info('Starting logging to "%s"', log_path)
319-
except PermissionError:
320-
logger.debug('No permission to log to "%s"', log_path)

tests/unit/test_logger.py

+11-17
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,20 @@
2626
import unittest
2727
import logging
2828

29-
from inputremapper.logger import logger, add_filehandler, update_verbosity, log_info
29+
from inputremapper.logger import logger, update_verbosity, log_info, ColorfulFormatter
3030
from inputremapper.configs.paths import remove
3131

3232

33+
def add_filehandler(log_path):
34+
"""Start logging to a file."""
35+
log_path = os.path.expanduser(log_path)
36+
os.makedirs(os.path.dirname(log_path), exist_ok=True)
37+
file_handler = logging.FileHandler(log_path)
38+
file_handler.setFormatter(ColorfulFormatter())
39+
logger.addHandler(file_handler)
40+
logger.info('Starting logging to "%s"', log_path)
41+
42+
3343
class TestLogger(unittest.TestCase):
3444
def tearDown(self):
3545
update_verbosity(debug=True)
@@ -77,22 +87,6 @@ def test_makes_path(self):
7787
add_filehandler(new_path)
7888
self.assertTrue(os.path.exists(new_path))
7989

80-
def test_clears_log(self):
81-
path = os.path.join(tmp, "logger-test")
82-
os.makedirs(os.path.dirname(path), exist_ok=True)
83-
os.mknod(path)
84-
85-
with open(path, "w") as f:
86-
f.write("aaaa\n" * 2000 + "end")
87-
88-
add_filehandler(os.path.join(tmp, "logger-test"))
89-
with open(path, "r") as f:
90-
# it only keeps the newest information
91-
content = f.readlines()
92-
self.assertLess(abs(len(content) - 1000), 10)
93-
# whatever the logging module decides to log into that file
94-
self.assertNotIn("aaaa", content[-1])
95-
9690
def test_debug(self):
9791
path = os.path.join(tmp, "logger-test")
9892
add_filehandler(path)

0 commit comments

Comments
 (0)