def write_logs()

in taskcat/_cfn/_log_stack_events.py [0:0]


    def write_logs(self, stack: Stack, logpath: Path):
        stackname = stack.name
        region = stack.region_name

        # Get stack resources
        cfnlogs = self.get_cfnlogs(stack)

        if len(cfnlogs) != 0:
            if cfnlogs[0]["ResourceStatus"] != "CREATE_COMPLETE":
                if "ResourceStatusReason" in cfnlogs[0]:
                    reason = cfnlogs[0]["ResourceStatusReason"]
                else:
                    reason = "Unknown"
            else:
                reason = "Stack launch was successful"

            with open(str(logpath), "a", encoding="utf-8") as log_output:
                log_output.write(
                    "------------------------------------------------------------------"
                    "-----------\n"
                )
                log_output.write("Region: " + region + "\n")
                log_output.write("StackName: " + stackname + "\n")
                log_output.write(
                    "******************************************************************"
                    "***********\n"
                )
                log_output.write("ResourceStatusReason:  \n")
                log_output.write(textwrap.fill(str(reason), 85) + "\n")
                log_output.write(
                    "******************************************************************"
                    "***********\n"
                )
                log_output.write(
                    "******************************************************************"
                    "***********\n"
                )
                log_output.write("Events:  \n")
                log_output.writelines(tabulate.tabulate(cfnlogs, headers="keys"))
                log_output.write(
                    "\n****************************************************************"
                    "*************\n"
                )
                log_output.write(
                    "------------------------------------------------------------------"
                    "-----------\n"
                )
                log_output.write(
                    "Tested on: "
                    + datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
                    + "\n"
                )
                log_output.write(
                    "------------------------------------------------------------------"
                    "-----------\n\n"
                )
                log_output.close()

            for child in stack.descendants(refresh=True):
                self.write_logs(child, logpath)
        else:
            LOG.error(
                "No event logs found. Something went wrong at describe event " "call."
            )