forked from ungleich-public/cdist
		
	Add timestamp to log messages.
This commit is contained in:
		
					parent
					
						
							
								02982ca8be
							
						
					
				
			
			
				commit
				
					
						6acf6f64dc
					
				
			
		
					 4 changed files with 48 additions and 3 deletions
				
			
		|  | @ -251,6 +251,11 @@ def get_parsers(): | |||
|                   'line). If no host or host file is specified then, by ' | ||||
|                   'default, read hosts from stdin.'), | ||||
|             dest='hostfile', required=False) | ||||
|     parser['config_args'].add_argument( | ||||
|            '-P', '--timestamp', | ||||
|            help=('Timestamp log messages with the current local date and time ' | ||||
|                  'in the format: YYYYMMDDHHMMSS.us.'), | ||||
|            action='store_true', dest='timestamp') | ||||
|     parser['config_args'].add_argument( | ||||
|            '-p', '--parallel', nargs='?', metavar='HOST_MAX', | ||||
|            type=functools.partial(check_lower_bounded_int, lower_bound=1, | ||||
|  |  | |||
|  | @ -175,7 +175,13 @@ class Config(object): | |||
| 
 | ||||
|         if args.parallel or args.jobs: | ||||
|             # If parallel execution then also log process id | ||||
|             cdist.log.setupParallelLogging() | ||||
|             if args.timestamp: | ||||
|                 cdist.log.setupTimestampingParallelLogging() | ||||
|             else: | ||||
|                 cdist.log.setupParallelLogging() | ||||
|             log = logging.getLogger("cdist") | ||||
|         elif args.timestamp: | ||||
|             cdist.log.setupTimestampingLogging() | ||||
|             log = logging.getLogger("cdist") | ||||
| 
 | ||||
|         if args.parallel: | ||||
|  |  | |||
							
								
								
									
										28
									
								
								cdist/log.py
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								cdist/log.py
									
										
									
									
									
								
							|  | @ -22,6 +22,7 @@ | |||
| 
 | ||||
| import logging | ||||
| import sys | ||||
| import datetime | ||||
| 
 | ||||
| 
 | ||||
| # Define additional cdist logging levels. | ||||
|  | @ -95,15 +96,42 @@ class DefaultLog(logging.Logger): | |||
|         self.log(logging.TRACE, msg, *args, **kwargs) | ||||
| 
 | ||||
| 
 | ||||
| class TimestampingLog(DefaultLog): | ||||
| 
 | ||||
|     def filter(self, record): | ||||
|         """Add timestamp to messages""" | ||||
| 
 | ||||
|         super().filter(record) | ||||
|         now = datetime.datetime.now() | ||||
|         timestamp = now.strftime("%Y%m%d%H%M%S.%f") | ||||
|         record.msg = "[" + timestamp + "] " + str(record.msg) | ||||
| 
 | ||||
|         return True | ||||
| 
 | ||||
| 
 | ||||
| class ParallelLog(DefaultLog): | ||||
|     FORMAT = '%(levelname)s: [%(process)d]: %(message)s' | ||||
| 
 | ||||
| 
 | ||||
| class TimestampingParallelLog(TimestampingLog, ParallelLog): | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| def setupDefaultLogging(): | ||||
|     del logging.getLogger().handlers[:] | ||||
|     logging.setLoggerClass(DefaultLog) | ||||
| 
 | ||||
| 
 | ||||
| def setupTimestampingLogging(): | ||||
|     del logging.getLogger().handlers[:] | ||||
|     logging.setLoggerClass(TimestampingLog) | ||||
| 
 | ||||
| 
 | ||||
| def setupTimestampingParallelLogging(): | ||||
|     del logging.getLogger().handlers[:] | ||||
|     logging.setLoggerClass(TimestampingParallelLog) | ||||
| 
 | ||||
| 
 | ||||
| def setupParallelLogging(): | ||||
|     del logging.getLogger().handlers[:] | ||||
|     logging.setLoggerClass(ParallelLog) | ||||
|  |  | |||
|  | @ -20,7 +20,8 @@ SYNOPSIS | |||
|                  [-j [JOBS]] [-n] [-o OUT_PATH] [-R [{tar,tgz,tbz2,txz}]] | ||||
|                  [-r REMOTE_OUT_DIR] [--remote-copy REMOTE_COPY] | ||||
|                  [--remote-exec REMOTE_EXEC] [-I INVENTORY_DIR] [-4] [-6] | ||||
|                  [-A] [-a] [-f HOSTFILE] [-p [HOST_MAX]] [-S] [-s] [-t] | ||||
|                  [-A] [-a] [-f HOSTFILE] [-P] [-p [HOST_MAX]] [-S] [-s] | ||||
|                  [-t] | ||||
|                  [host [host ...]]  | ||||
| 
 | ||||
|     cdist install [-h] [-l LOGLEVEL] [-q] [-v] [-b] [-g CONFIG_FILE] | ||||
|  | @ -28,7 +29,8 @@ SYNOPSIS | |||
|                   [-j [JOBS]] [-n] [-o OUT_PATH] [-R [{tar,tgz,tbz2,txz}]] | ||||
|                   [-r REMOTE_OUT_DIR] [--remote-copy REMOTE_COPY] | ||||
|                   [--remote-exec REMOTE_EXEC] [-I INVENTORY_DIR] [-4] [-6] | ||||
|                   [-A] [-a] [-f HOSTFILE] [-p [HOST_MAX]] [-S] [-s] [-t] | ||||
|                   [-A] [-a] [-f HOSTFILE] [-P] [-p [HOST_MAX]] [-S] [-s] | ||||
|                   [-t] | ||||
|                   [host [host ...]]  | ||||
| 
 | ||||
|     cdist inventory [-h] {add-host,add-tag,del-host,del-tag,list} ... | ||||
|  | @ -171,6 +173,10 @@ Install command is currently in beta. | |||
| **-o OUT_PATH, --out-dir OUT_PATH** | ||||
|     Directory to save cdist output in. | ||||
| 
 | ||||
| **-P, --timestamp** | ||||
|     Timestamp log messages with the current local date and time | ||||
|     in the format: YYYYMMDDHHMMSS.us. | ||||
| 
 | ||||
| **-p [HOST_MAX], --parallel [HOST_MAX]** | ||||
|     Operate on multiple hosts in parallel for specified | ||||
|     maximum hosts at a time. Without argument CPU count is | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue