summaryrefslogtreecommitdiffstats
path: root/glances/logger.py
diff options
context:
space:
mode:
Diffstat (limited to 'glances/logger.py')
-rw-r--r--glances/logger.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/glances/logger.py b/glances/logger.py
index 472b264f..10b2ee7e 100644
--- a/glances/logger.py
+++ b/glances/logger.py
@@ -27,8 +27,27 @@ import tempfile
import logging
import logging.config
-LOG_FILENAME = os.path.join(tempfile.gettempdir(),
- 'glances-{}.log'.format(getpass.getuser()))
+from glances.globals import BSD, LINUX, MACOS, SUNOS, WINDOWS, WSL
+from glances.globals import safe_makedirs
+
+# Choose the good place for the log file (see issue #1575)
+# Default root path
+if 'HOME' in os.environ:
+ _XDG_CACHE_HOME = os.path.join(os.environ['HOME'], '.local', 'share')
+else:
+ _XDG_CACHE_HOME = ''
+# Define the glances log file
+if 'XDG_CACHE_HOME' in os.environ \
+ and os.path.isdir(os.environ['XDG_CACHE_HOME']) \
+ and os.access(os.environ['XDG_CACHE_HOME'], os.W_OK):
+ safe_makedirs(os.path.join(os.environ['XDG_CACHE_HOME'], 'glances'))
+ LOG_FILENAME = os.path.join(os.environ['XDG_CACHE_HOME'], 'glances', 'glances.log')
+elif os.path.isdir(_XDG_CACHE_HOME) and os.access(_XDG_CACHE_HOME, os.W_OK):
+ safe_makedirs(os.path.join(_XDG_CACHE_HOME, 'glances'))
+ LOG_FILENAME = os.path.join(_XDG_CACHE_HOME, 'glances', 'glances.log')
+else:
+ LOG_FILENAME = os.path.join(tempfile.gettempdir(),
+ 'glances-{}.log'.format(getpass.getuser()))
# Define the logging configuration
LOGGING_CFG = {
@@ -56,6 +75,8 @@ LOGGING_CFG = {
"file": {
"level": "DEBUG",
"class": "logging.handlers.RotatingFileHandler",
+ "maxBytes": 1000000,
+ "backupCount": 3,
"formatter": "standard",
"filename": LOG_FILENAME
},