summaryrefslogtreecommitdiffstats
path: root/glances
diff options
context:
space:
mode:
Diffstat (limited to 'glances')
-rw-r--r--glances/logger.py25
-rw-r--r--glances/main.py4
2 files changed, 25 insertions, 4 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
},
diff --git a/glances/main.py b/glances/main.py
index 0b5f070b..dad17e6f 100644
--- a/glances/main.py
+++ b/glances/main.py
@@ -27,7 +27,7 @@ from glances import __version__, psutil_version
from glances.compat import input
from glances.config import Config
from glances.globals import WINDOWS
-from glances.logger import logger
+from glances.logger import logger, LOG_FILENAME
def disable(class_name, var):
@@ -112,7 +112,7 @@ Examples of use:
def init_args(self):
"""Init all the command line arguments."""
- version = "Glances v" + __version__ + " with psutil v" + psutil_version
+ version = 'Glances v{} with PsUtil v{}\nLog file: {}'.format(__version__, psutil_version, LOG_FILENAME)
parser = argparse.ArgumentParser(
prog='glances',
conflict_handler='resolve',