У меня проблема с моим скриптом, я пытаюсь создать файл журнала для каждого вызова этой функции:
@begin.subcommand
def sample_mode(sample, folder = None, reference = None, dbsnp = None):
""" creates a config file for 1 sample
- setup logging system: {folder}/logs/{sample}_init.log
- takes in a sample name
- creates a file: {folder}/{sample}_config.yaml
"""
# get the current folder if none is given
if folder == None:
folder = os.getcwd()
# create logs folder if necessary
if not os.path.isdir("{}/logs".format(folder)):
os.mkdir("{}/logs".format(folder))
log_file = setup_log(sample, folder)
for i in range(1,3):
try:
os.path.getsize("{}/{}.{}.fq.gz".format(folder, sample, i))
except FileNotFoundError:
log_file.error("{}/{}.{}.fq.gz doesn't exist".format(folder, sample, i))
return -1
if os.path.getsize("{}/{}.{}.fq.gz".format(folder, sample, i)) == 0:
log_file.error("\"{}/{}.{}.fq.gz\" is empty\n".format(folder, sample, i))
return -1
# set up logging system
# logging.basicConfig(filename = "{}/logs/{}_init.log".format(folder, sample), level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
# create the config file
with open("{}/{}_config.yaml".format(folder, sample), "w") as config:
config.write("sample: \"{}\"\n\n".format(sample))
log_file.info("Sample name: {}".format(sample))
Для справки: функция setup_log:
def setup_log(sample, folder):
logger = logging.getLogger(__name__)
log_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
filename = "{}/logs/{}_init.log".format(folder, sample)
log_handler = logging.FileHandler(filename)
log_handler.setLevel(logging.DEBUG)
log_handler.setFormatter(log_format)
logger.addHandler(log_handler)
return logger
Файл журнала создан, но он пуст. Однако, если я введу неправильное имя образца, файл журнала будет создан, и сообщение об ошибке будет записано.
Что я делаю не так?