def _create_query_logger(response_log): """Create a logger that will persist incoming query results.""" # Ensures different log files for different # processes in multi worker mode if response_log: # We need to generate a unique file name, # even in multiprocess environments timestamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S") log_file_name = "rasa_nlu_log-{}-{}.log".format(timestamp, os.getpid()) response_logfile = os.path.join(response_log, log_file_name) # Instantiate a standard python logger, # which we are going to use to log requests utils.create_dir_for_file(response_logfile) # noinspection PyTypeChecker query_logger = logging.getLogger("query-logger") query_logger.setLevel(logging.INFO) ch = logging.FileHandler(response_logfile) ch.setFormatter(logging.Formatter("%(message)s")) query_logger.propagate = False query_logger.addHandler(ch) logger.info("Logging requests to '{}'.".format(response_logfile)) return query_logger else: # If the user didn't provide a logging directory, we wont log! logger.info( "Logging of requests is disabled. " "(No 'request_log' directory configured)" ) return None
def _create_query_logger(response_log): """Create a logger that will persist incoming query results.""" # Ensures different log files for different # processes in multi worker mode if response_log: # We need to generate a unique file name, # even in multiprocess environments timestamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S") log_file_name = "rasa_nlu_log-{}-{}.log".format(timestamp, os.getpid()) response_logfile = os.path.join(response_log, log_file_name) # Instantiate a standard python logger, # which we are going to use to log requests utils.create_dir_for_file(response_logfile) out_file = io.open(response_logfile, "a", encoding="utf8") # noinspection PyTypeChecker query_logger = Logger( observer=jsonFileLogObserver(out_file, recordSeparator=""), namespace="query-logger", ) # Prevents queries getting logged with parent logger # --> might log them to stdout logger.info("Logging requests to '{}'.".format(response_logfile)) return query_logger else: # If the user didn't provide a logging directory, we wont log! logger.info( "Logging of requests is disabled. " "(No 'request_log' directory configured)" ) return None