log: don't write to qubes.log or vm-*.log, only stderr
This commit is contained in:
		
							parent
							
								
									761d752363
								
							
						
					
					
						commit
						7c5988f696
					
				| @ -5,12 +5,3 @@ | |||||||
|         /bin/systemctl restart qubes-qmemman.service >/dev/null 2>/dev/null || true |         /bin/systemctl restart qubes-qmemman.service >/dev/null 2>/dev/null || true | ||||||
|     endscript |     endscript | ||||||
| } | } | ||||||
| 
 |  | ||||||
| /var/log/qubes/qubes.log { |  | ||||||
|     create 0640 root qubes |  | ||||||
|     su root qubes |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /var/log/qubes/vm-*.log { |  | ||||||
|     su root qubes |  | ||||||
| } |  | ||||||
|  | |||||||
| @ -1486,7 +1486,7 @@ class Qubes(qubes.PropertyHolder): | |||||||
|                         raise qubes.exc.QubesVMInUseError( |                         raise qubes.exc.QubesVMInUseError( | ||||||
|                             vm, |                             vm, | ||||||
|                             'Domain is in use: {!r};' |                             'Domain is in use: {!r};' | ||||||
|                             'see /var/log/qubes/qubes.log in dom0 for ' |                             "see 'journalctl -u qubesd -e' in dom0 for " | ||||||
|                             'details'.format( |                             'details'.format( | ||||||
|                                 vm.name)) |                                 vm.name)) | ||||||
|                 except AttributeError: |                 except AttributeError: | ||||||
|  | |||||||
							
								
								
									
										64
									
								
								qubes/log.py
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								qubes/log.py
									
									
									
									
									
								
							| @ -24,20 +24,23 @@ See also: :py:attr:`qubes.vm.qubesvm.QubesVM.log` | |||||||
| ''' | ''' | ||||||
| 
 | 
 | ||||||
| import logging | import logging | ||||||
| import logging.handlers |  | ||||||
| import os |  | ||||||
| import sys | import sys | ||||||
| import fcntl |  | ||||||
| 
 | 
 | ||||||
| FORMAT_CONSOLE = '%(message)s' |  | ||||||
| FORMAT_LOG = '%(asctime)s %(message)s' |  | ||||||
| FORMAT_DEBUG = '%(asctime)s ' \ |  | ||||||
|     '[%(processName)s %(module)s.%(funcName)s:%(lineno)d] %(name)s: %(message)s' |  | ||||||
| LOGPATH = '/var/log/qubes' |  | ||||||
| 
 | 
 | ||||||
| formatter_console = logging.Formatter(FORMAT_CONSOLE) | class Formatter(logging.Formatter): | ||||||
| formatter_log = logging.Formatter(FORMAT_LOG) |     def __init__(self, *args, debug=False, **kwargs): | ||||||
| formatter_debug = logging.Formatter(FORMAT_DEBUG) |         super().__init__(*args, **kwargs) | ||||||
|  |         self.debug = debug | ||||||
|  | 
 | ||||||
|  |     def formatMessage(self, record): | ||||||
|  |         fmt = '' | ||||||
|  |         if self.debug: | ||||||
|  |             fmt += '[%(processName)s %(module)s.%(funcName)s:%(lineno)d] ' | ||||||
|  |         if self.debug or record.name.startswith('vm.'): | ||||||
|  |             fmt += '%(name)s: ' | ||||||
|  |         fmt += '%(message)s' | ||||||
|  | 
 | ||||||
|  |         return fmt % record.__dict__ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def enable(): | def enable(): | ||||||
| @ -55,25 +58,9 @@ def enable(): | |||||||
|         return |         return | ||||||
| 
 | 
 | ||||||
|     handler_console = logging.StreamHandler(sys.stderr) |     handler_console = logging.StreamHandler(sys.stderr) | ||||||
|     handler_console.setFormatter(formatter_console) |     handler_console.setFormatter(Formatter()) | ||||||
|     logging.root.addHandler(handler_console) |     logging.root.addHandler(handler_console) | ||||||
| 
 | 
 | ||||||
|     if os.path.exists('/var/log/qubes'): |  | ||||||
|         log_path = '/var/log/qubes/qubes.log' |  | ||||||
|     else: |  | ||||||
|         # for tests, travis etc |  | ||||||
|         log_path = '/tmp/qubes.log' |  | ||||||
|     old_umask = os.umask(0o007) |  | ||||||
|     try: |  | ||||||
|         handler_log = logging.handlers.WatchedFileHandler( |  | ||||||
|             log_path, 'a', encoding='utf-8') |  | ||||||
|         fcntl.fcntl(handler_log.stream.fileno(), |  | ||||||
|             fcntl.F_SETFD, fcntl.FD_CLOEXEC) |  | ||||||
|     finally: |  | ||||||
|         os.umask(old_umask) |  | ||||||
|     handler_log.setFormatter(formatter_log) |  | ||||||
|     logging.root.addHandler(handler_log) |  | ||||||
| 
 |  | ||||||
|     logging.root.setLevel(logging.INFO) |     logging.root.setLevel(logging.INFO) | ||||||
| 
 | 
 | ||||||
| def enable_debug(): | def enable_debug(): | ||||||
| @ -83,10 +70,11 @@ def enable_debug(): | |||||||
|     ''' |     ''' | ||||||
| 
 | 
 | ||||||
|     enable() |     enable() | ||||||
|     logging.root.setLevel(logging.DEBUG) |  | ||||||
| 
 | 
 | ||||||
|     for handler in logging.root.handlers: |     for handler in logging.root.handlers: | ||||||
|         handler.setFormatter(formatter_debug) |         handler.setFormatter(Formatter(debug=True)) | ||||||
|  | 
 | ||||||
|  |     logging.root.setLevel(logging.DEBUG) | ||||||
| 
 | 
 | ||||||
| def get_vm_logger(vmname): | def get_vm_logger(vmname): | ||||||
|     '''Initialise logging for particular VM name |     '''Initialise logging for particular VM name | ||||||
| @ -95,18 +83,4 @@ def get_vm_logger(vmname): | |||||||
|     :rtype: :py:class:`logging.Logger` |     :rtype: :py:class:`logging.Logger` | ||||||
|     ''' |     ''' | ||||||
| 
 | 
 | ||||||
|     logger = logging.getLogger('vm.' + vmname) |     return logging.getLogger('vm.' + vmname) | ||||||
|     if logger.handlers: |  | ||||||
|         return logger |  | ||||||
|     old_umask = os.umask(0o007) |  | ||||||
|     try: |  | ||||||
|         handler = logging.handlers.WatchedFileHandler( |  | ||||||
|             os.path.join(LOGPATH, 'vm-{}.log'.format(vmname))) |  | ||||||
|         fcntl.fcntl(handler.stream.fileno(), |  | ||||||
|             fcntl.F_SETFD, fcntl.FD_CLOEXEC) |  | ||||||
|     finally: |  | ||||||
|         os.umask(old_umask) |  | ||||||
|     handler.setFormatter(formatter_log) |  | ||||||
|     logger.addHandler(handler) |  | ||||||
| 
 |  | ||||||
|     return logger |  | ||||||
|  | |||||||
| @ -105,7 +105,6 @@ try: | |||||||
|     in_git = subprocess.check_output( |     in_git = subprocess.check_output( | ||||||
|         ['git', 'rev-parse', '--show-toplevel'], stderr=subprocess.DEVNULL |         ['git', 'rev-parse', '--show-toplevel'], stderr=subprocess.DEVNULL | ||||||
|     ).decode().strip() |     ).decode().strip() | ||||||
|     qubes.log.LOGPATH = '/tmp' |  | ||||||
| except subprocess.CalledProcessError: | except subprocess.CalledProcessError: | ||||||
|     # git returned nonzero, we are outside git repo |     # git returned nonzero, we are outside git repo | ||||||
|     pass |     pass | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Rusty Bird
						Rusty Bird