MCPcopy
hub / github.com/bugy/script-server / ExecutionLoggingService

Class ExecutionLoggingService

src/execution/logging.py:112–353  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110
111
112class ExecutionLoggingService:
113 def __init__(self, output_folder, log_name_creator, authorizer):
114 self._output_folder = output_folder
115 self._log_name_creator = log_name_creator
116 self._authorizer = authorizer
117
118 self._visited_files = set()
119 self._ids_to_file_map = {}
120 self._output_loggers = {}
121
122 file_utils.prepare_folder(output_folder)
123
124 self._renew_files_cache()
125
126 def start_logging(self, execution_id,
127 user_name,
128 user_id,
129 command,
130 output_stream,
131 all_audit_names,
132 script_config,
133 parameter_value_wrappers,
134 start_time_millis=None):
135
136 script_name = str(script_config.name)
137
138 if start_time_millis is None:
139 start_time_millis = get_current_millis()
140
141 log_filename = self._log_name_creator.create_filename(
142 execution_id,
143 all_audit_names,
144 script_name,
145 start_time_millis,
146 script_config.logging_config,
147 script_config.parameters,
148 parameter_value_wrappers)
149 log_file_path = os.path.join(self._output_folder, log_filename)
150 log_file_path = file_utils.create_unique_filename(log_file_path)
151
152 output_logger = ScriptOutputLogger(log_file_path, output_stream)
153 output_logger.write_line('id:' + execution_id)
154 output_logger.write_line('user_name:' + user_name)
155 output_logger.write_line('user_id:' + user_id)
156 output_logger.write_line('script:' + script_name)
157 output_logger.write_line('start_time:' + str(start_time_millis))
158 output_logger.write_line('command:' + command)
159 output_logger.write_line('output_format:' + script_config.output_format)
160 output_logger.write_line(OUTPUT_STARTED_MARKER)
161 output_logger.start()
162
163 log_filename = os.path.basename(log_file_path)
164 self._visited_files.add(log_filename)
165 self._ids_to_file_map[execution_id] = log_filename
166 self._output_loggers[execution_id] = output_logger
167
168 def write_post_execution_info(self, execution_id, exit_code):
169 filename = self._ids_to_file_map.get(execution_id)

Callers 5

mainFunction · 0.90
setUpMethod · 0.90
setUpMethod · 0.90

Calls

no outgoing calls

Tested by 4

setUpMethod · 0.72
setUpMethod · 0.72