def exec_operation():
    arg_type = ArgType()
    args_res = arg_type.analyze_type

    conf = Config()
    if arg_type.is_monitor:
        perform = Performance(arg_type.process_name, arg_type.message)

    if LifecycleBase._export_to is None:
        LifecycleBase._export_to = conf.export_path
    if Performance._export_to is None:
        Performance._export_to = conf.export_path


    operations = {
        ArgType.SIGN_IN | ArgType.FIRST_SIGN_IN :\
            lambda var, msg: lifecycle_cases.NonSSOLifecycle().first_sign_in(var, msg),

        ArgType.SIGN_IN | ArgType.SECOND_SIGN_IN:\
            lambda var, msg: lifecycle_cases.NonSSOLifecycle().second_sign_in(var, msg),

        ArgType.SIGN_IN | ArgType.FIRST_SIGN_IN | ArgType.SECOND_SIGN_IN:\
            lambda var, msg: lifecycle_cases.NonSSOLifecycle().first_second_sign_in_out(var, msg),

        ArgType.SSO | ArgType.SIGN_IN | ArgType.FIRST_SIGN_IN:\
            lambda var, msg: lifecycle_cases.SSOLifecycle().first_sign_in(var, msg),

        ArgType.SSO | ArgType.SIGN_IN | ArgType.SECOND_SIGN_IN:\
            lambda var, msg: lifecycle_cases.SSOLifecycle().second_sign_in(var, msg),

        ArgType.SSO | ArgType.SIGN_IN | ArgType.FIRST_SIGN_IN | ArgType.SECOND_SIGN_IN:\
            lambda var, msg: lifecycle_cases.SSOLifecycle().first_second_sign_in_out(var, msg),

        ArgType.MONITOR:\
            lambda: perform.begin_monitor(time_span=arg_type.timespan),
    }

    method = operations.get(args_res)
    if method is not None:
        if arg_type.is_monitor:
            method()
        else:
            log_list = LogParser(conf.log_file_path, conf.log_file_tag)
            method(log_list, arg_type.message)
            if arg_type.clean:
                log_list.clean_log()
                logging.info("Log cleaned")