summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/__init__.py0
-rw-r--r--src/__pycache__/args_worklogger.cpython-312.pycbin0 -> 2223 bytes
-rw-r--r--src/args_worklogger.py89
-rw-r--r--src/logs/WorkLogger.log91
-rw-r--r--src/utils/__init__.py0
-rw-r--r--src/utils/__pycache__/__init__.cpython-312.pycbin0 -> 158 bytes
-rw-r--r--src/utils/__pycache__/log_util.cpython-312.pycbin0 -> 1238 bytes
-rw-r--r--src/utils/__pycache__/paths_util.cpython-312.pycbin0 -> 665 bytes
-rw-r--r--src/utils/log_util.py47
-rw-r--r--src/utils/paths_util.py10
-rw-r--r--src/worklog.py140
11 files changed, 377 insertions, 0 deletions
diff --git a/src/__init__.py b/src/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/__init__.py
diff --git a/src/__pycache__/args_worklogger.cpython-312.pyc b/src/__pycache__/args_worklogger.cpython-312.pyc
new file mode 100644
index 0000000..6f49f37
--- /dev/null
+++ b/src/__pycache__/args_worklogger.cpython-312.pyc
Binary files differ
diff --git a/src/args_worklogger.py b/src/args_worklogger.py
new file mode 100644
index 0000000..718f6c1
--- /dev/null
+++ b/src/args_worklogger.py
@@ -0,0 +1,89 @@
+"""
+ARGUMENTS FILE FOR WORKLOGGER
+author: Wacky404
+email: wacky404@dev.com
+"""
+import argparse
+
+# worklog -j paces -p interconnection -l university -t 2 -s 12:00 am -e 1:00 PM
+
+parser = argparse.ArgumentParser(
+ prog='WorkLogger',
+ description="Log time efficiently, accurately, and reliably "
+ "directly from the terminal you work in.",
+)
+
+parser.add_argument(
+ '-c',
+ '--configure',
+ action='store_true',
+ help='check/create directories that will be used in WorkLogger',
+)
+
+parser.add_argument(
+ '-l',
+ '--log',
+ action='store',
+ default='INFO', # NOTSET=0, DEBUG=10, INFO=20, WARNING=30, ERROR=40, CRITICAL=50
+ help='DEBUG: Detailed information for diagnosing problems | '
+ 'INFO: Confirmation that things are working | '
+ 'WARNING: Indication that something unexpected happened. Program still running | '
+ 'ERROR: Not able to perform some function of the program | '
+ 'CRITICAL: Serious error, program may be unable to continue running',
+)
+
+parser.add_argument(
+ '-v',
+ '--verbose',
+ action='store_false',
+ help='turn on/off the verboseness of the program when run',
+)
+
+parser.add_argument(
+ '-j',
+ '--job',
+ action='store',
+ help='Add a job for the work done, to be logged with your insertion',
+)
+
+parser.add_argument(
+ '-p',
+ '--project',
+ action='store',
+ help='',
+)
+
+parser.add_argument(
+ '-loc',
+ '--location',
+ action='store',
+ help='Add a location for the work done, to be logged with your insertion',
+)
+
+parser.add_argument(
+ '-t',
+ '--time',
+ action='store',
+ default=0
+)
+
+parser.add_argument(
+ '-s',
+ '--start',
+ action='store',
+ help='Add a start time for the work done, to be logged with your insertion',
+)
+
+parser.add_argument(
+ '-e',
+ '--end',
+ action='store',
+ help='Add a end time for the work done, to be logged with your insertion',
+)
+
+parser.add_argument(
+ '-m',
+ '--message',
+ action='store',
+ help='Add a message to accompany your worklog entry'
+)
diff --git a/src/logs/WorkLogger.log b/src/logs/WorkLogger.log
new file mode 100644
index 0000000..e4b9db2
--- /dev/null
+++ b/src/logs/WorkLogger.log
@@ -0,0 +1,91 @@
+[DEBUG|worklog|L88] 2024-10-02T12:40:56-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L32] 2024-10-02T12:40:56-0500: Directory ~/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L32] 2024-10-02T12:40:56-0500: Directory ~/Documents/worklogger created
+[DEBUG|worklog|L32] 2024-10-02T12:40:56-0500: Directory ~/Documents/GitHub/worklogger created
+[INFO|worklog|L64] 2024-10-02T12:40:56-0500: Written paces worklog to ~/Documents/GitHub/worklogger/Output
+[INFO|worklog|L64] 2024-10-02T12:40:56-0500: Written paces worklog to ~/Documents/worklogger
+[DEBUG|worklog|L88] 2024-10-02T12:48:58-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L32] 2024-10-02T12:48:58-0500: Directory /Users/cole/Documents/GitHub/worklogger/src/~/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L32] 2024-10-02T12:48:58-0500: Directory /Users/cole/Documents/GitHub/worklogger/src/~/Documents/worklogger created
+[DEBUG|worklog|L32] 2024-10-02T12:48:58-0500: Directory /Users/cole/Documents/GitHub/worklogger/src/~/Documents/GitHub/worklogger created
+[INFO|worklog|L64] 2024-10-02T12:48:58-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/src/~/Documents/GitHub/worklogger/Output
+[INFO|worklog|L64] 2024-10-02T12:48:58-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/src/~/Documents/worklogger
+[DEBUG|worklog|L88] 2024-10-02T12:49:33-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T12:58:15-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T13:00:06-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T13:01:34-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T13:05:12-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T13:13:47-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T13:15:57-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L87] 2024-10-02T13:19:16-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L31] 2024-10-02T13:19:16-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L31] 2024-10-02T13:19:16-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L31] 2024-10-02T13:19:16-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[INFO|worklog|L63] 2024-10-02T13:19:16-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L63] 2024-10-02T13:19:16-0500: Written paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L89] 2024-10-02T13:45:28-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L32] 2024-10-02T13:45:28-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L32] 2024-10-02T13:45:28-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L32] 2024-10-02T13:45:28-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[ERROR|worklog|L125] 2024-10-02T13:45:28-0500: [Errno 17] File exists: '/Users/cole/Documents/GitHub/worklogger/Output/great company.txt'
+Traceback (most recent call last):
+ File "/Users/cole/Documents/GitHub/worklogger/src/worklog.py", line 120, in <module>
+ with open(filepath, 'x'):
+ ^^^^^^^^^^^^^^^^^^^
+FileExistsError: [Errno 17] File exists: '/Users/cole/Documents/GitHub/worklogger/Output/great company.txt'
+[INFO|worklog|L65] 2024-10-02T13:45:28-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L65] 2024-10-02T13:45:28-0500: Written paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L89] 2024-10-02T13:47:50-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L32] 2024-10-02T13:47:50-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L32] 2024-10-02T13:47:50-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L32] 2024-10-02T13:47:50-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[ERROR|worklog|L125] 2024-10-02T13:47:50-0500: [Errno 17] File exists: '/Users/cole/Documents/GitHub/worklogger/Output/great company.txt'
+Traceback (most recent call last):
+ File "/Users/cole/Documents/GitHub/worklogger/src/worklog.py", line 120, in <module>
+ with open(filepath, 'x'):
+ ^^^^^^^^^^^^^^^^^^^
+FileExistsError: [Errno 17] File exists: '/Users/cole/Documents/GitHub/worklogger/Output/great company.txt'
+[INFO|worklog|L65] 2024-10-02T13:47:50-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L65] 2024-10-02T13:47:50-0500: Written paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L89] 2024-10-02T13:55:02-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L32] 2024-10-02T13:55:02-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L32] 2024-10-02T13:55:02-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L32] 2024-10-02T13:55:02-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[INFO|worklog|L65] 2024-10-02T13:55:02-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L65] 2024-10-02T13:55:02-0500: Written paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L90] 2024-10-02T14:02:05-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L33] 2024-10-02T14:02:05-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L33] 2024-10-02T14:02:05-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L33] 2024-10-02T14:02:05-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[INFO|worklog|L66] 2024-10-02T14:02:05-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L66] 2024-10-02T14:02:05-0500: Written paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L90] 2024-10-02T14:14:03-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L33] 2024-10-02T14:14:03-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L33] 2024-10-02T14:14:03-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L33] 2024-10-02T14:14:03-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[INFO|worklog|L66] 2024-10-02T14:14:03-0500: Written PACES worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L66] 2024-10-02T14:14:03-0500: Written PACES worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L92] 2024-10-02T14:16:30-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[DEBUG|worklog|L33] 2024-10-02T14:16:30-0500: Directory /Users/cole/Documents/GitHub/worklogger/Output created
+[DEBUG|worklog|L33] 2024-10-02T14:16:30-0500: Directory /Users/cole/Documents/worklogger created
+[DEBUG|worklog|L33] 2024-10-02T14:16:30-0500: Directory /Users/cole/Documents/GitHub/worklogger created
+[INFO|worklog|L68] 2024-10-02T14:16:30-0500: Written PACES worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L68] 2024-10-02T14:16:30-0500: Written PACES worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L92] 2024-10-02T14:20:54-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[INFO|worklog|L68] 2024-10-02T14:20:54-0500: Written PACES worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L68] 2024-10-02T14:20:54-0500: Written PACES worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L93] 2024-10-02T14:25:12-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[INFO|worklog|L69] 2024-10-02T14:25:12-0500: Written paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L69] 2024-10-02T14:25:12-0500: Written paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L93] 2024-10-02T14:27:30-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[INFO|worklog|L69] 2024-10-02T14:27:30-0500: Written Paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L69] 2024-10-02T14:27:30-0500: Written Paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L96] 2024-10-02T14:32:25-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[INFO|worklog|L72] 2024-10-02T14:32:25-0500: Written Paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L72] 2024-10-02T14:32:25-0500: Written Paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L96] 2024-10-02T14:33:42-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[INFO|worklog|L72] 2024-10-02T14:33:42-0500: Written Paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L72] 2024-10-02T14:33:42-0500: Written Paces worklog to /Users/cole/Documents/worklogger
+[DEBUG|worklog|L96] 2024-10-02T14:35:11-0500: Using user config file in /Users/cole/Documents/GitHub/worklogger/src/../.workloggerconfig.json
+[INFO|worklog|L72] 2024-10-02T14:35:11-0500: Written Paces worklog to /Users/cole/Documents/GitHub/worklogger/Output
+[INFO|worklog|L72] 2024-10-02T14:35:11-0500: Written Paces worklog to /Users/cole/Documents/worklogger
diff --git a/src/utils/__init__.py b/src/utils/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/utils/__init__.py
diff --git a/src/utils/__pycache__/__init__.cpython-312.pyc b/src/utils/__pycache__/__init__.cpython-312.pyc
new file mode 100644
index 0000000..20a31d8
--- /dev/null
+++ b/src/utils/__pycache__/__init__.cpython-312.pyc
Binary files differ
diff --git a/src/utils/__pycache__/log_util.cpython-312.pyc b/src/utils/__pycache__/log_util.cpython-312.pyc
new file mode 100644
index 0000000..490312e
--- /dev/null
+++ b/src/utils/__pycache__/log_util.cpython-312.pyc
Binary files differ
diff --git a/src/utils/__pycache__/paths_util.cpython-312.pyc b/src/utils/__pycache__/paths_util.cpython-312.pyc
new file mode 100644
index 0000000..a2e95ae
--- /dev/null
+++ b/src/utils/__pycache__/paths_util.cpython-312.pyc
Binary files differ
diff --git a/src/utils/log_util.py b/src/utils/log_util.py
new file mode 100644
index 0000000..7c31a32
--- /dev/null
+++ b/src/utils/log_util.py
@@ -0,0 +1,47 @@
+import logging.config
+
+
+# TODO: can't configure queue_handler easily as of 3.11 python only available on 3.12
+logger = logging.getLogger("WorkLogger")
+
+
+def setup_logging(log_lvl_stdout='WARNING') -> None:
+ logging_config: dict = {
+ "version": 1,
+ "disable_existing_loggers": False,
+ "formatters": {
+ "simple": {
+ "format": "%(levelname)s: %(message)s",
+ },
+ "detailed": {
+ "format": "[%(levelname)s|%(module)s|L%(lineno)d] %(asctime)s: %(message)s",
+ "datefmt": "%Y-%m-%dT%H:%M:%S%z",
+ },
+ },
+ "handlers": {
+ "stdout": {
+ "class": "logging.StreamHandler",
+ "level": log_lvl_stdout,
+ "formatter": "simple",
+ "stream": "ext://sys.stdout",
+ },
+ "file": {
+ "class": "logging.handlers.RotatingFileHandler",
+ "level": "DEBUG",
+ "formatter": "detailed",
+ "filename": "logs/WorkLogger.log",
+ "maxBytes": 5000000, # 5 mb
+ "backupCount": 5,
+ },
+ },
+ "loggers": {
+ "root": {
+ "level": "DEBUG",
+ "handlers": [
+ "stdout",
+ "file",
+ ],
+ },
+ },
+ }
+ logging.config.dictConfig(logging_config)
diff --git a/src/utils/paths_util.py b/src/utils/paths_util.py
new file mode 100644
index 0000000..78e3e0e
--- /dev/null
+++ b/src/utils/paths_util.py
@@ -0,0 +1,10 @@
+import os.path as osp
+import os
+import sys
+
+
+os_home = osp.expanduser("~")
+cwd = os.getcwd()
+path_to_doc = osp.join(os_home, str('Documents'))
+output_dir = osp.join(path_to_doc, str('workloggerOutput'))
+log_dir = osp.join(cwd, str('logs'))
diff --git a/src/worklog.py b/src/worklog.py
new file mode 100644
index 0000000..4638484
--- /dev/null
+++ b/src/worklog.py
@@ -0,0 +1,140 @@
+from pathlib import Path
+from utils.log_util import logger, setup_logging
+
+from args_worklogger import parser
+from utils import paths_util as pu
+import logging
+
+import os.path as osp
+import os
+import sys
+import json
+from datetime import timezone
+import datetime
+
+SAVEPATH: Path | str
+BACKUPPATH: Path | str
+CONFIGPATH: Path | str
+
+formats: dict = {
+ "TEXT": '.txt',
+ "JSON": '.json',
+}
+
+# creates a NameSpace of arguments that were made
+args = parser.parse_args()
+
+
+def configure(dir_list: list | None = None) -> None:
+ if dir_list is not None:
+ for directory in dir_list:
+ try:
+ os.makedirs(name=directory, exist_ok=True)
+ logger.debug(f"Directory {directory} created")
+
+ except FileExistsError as e:
+ logger.exception(f"An exception of type {type(e).__name__} occurred. "
+ f"Details: This is okay, output will save in existing {directory}.")
+ else:
+ for directory in [pu.output_dir, pu.log_dir]:
+ try:
+ os.makedirs(name=directory, exist_ok=True)
+ logger.debug(f"Directory {directory} created")
+
+ except FileExistsError as e:
+ logger.exception(f"An exception of type {type(e).__name__} occurred. "
+ f"Details: This is okay, output will save in existing {directory}.")
+
+
+def add_log(job=args.job, proj=args.project, loc=args.location, time=args.time, start=args.start, end=args.end,
+ desc=args.message, file_format=None) -> None:
+ # TODO: Add in functionality to convert project input arg to key value pair from settings
+ func_args = locals()
+ dt = datetime.datetime.now(timezone.utc)
+ log_str = f"{dt.strftime("%Y-%m-%dT%H:%M:%S%Z")} "
+ for key, val in func_args.items():
+ if key == 'time' and val is not None:
+ log_str += f"{key}:{val}hrs "
+ elif key == 'desc' and val is not None:
+ log_str += f"{key}:'{val}'"
+ elif val is not None and key != 'file_format':
+ log_str += f"{key}:{val} "
+
+ job_upper = str(job).upper()
+ for path in [SAVEPATH, BACKUPPATH]:
+ if file_format != None:
+ chosen_job = osp.join(path, f"{job_upper}{file_format}")
+ else:
+ chosen_job = osp.join(path, f"{job_upper}.txt")
+
+ with open(chosen_job, 'a') as fd:
+ fd.write(f"{log_str}\n")
+
+ logger.info(f"Written {func_args['job']} worklog to {path}")
+
+
+if args.configure:
+ configure()
+ logger.info("Configuration completed.")
+ sys.exit()
+
+numeric_loglevel = getattr(logging, str(args.log).upper())
+if isinstance(numeric_loglevel, int):
+ setup_logging(numeric_loglevel)
+else:
+ setup_logging()
+
+
+dotfile: list | None = None
+if osp.exists(osp.join(os.getcwd(), os.pardir)):
+ dotfile = list(Path(osp.join(os.getcwd(), os.pardir)).glob(
+ '**/*.workloggerconfig.json'))
+ if len(dotfile) > 1:
+ logger.error(
+ f"You have {len(dotfile)} config files, using defaults...")
+ dotfile = None
+ else:
+ logger.debug(f"Using user config file in {str(dotfile[0])}")
+
+settings = None
+if dotfile is not None:
+ with open(dotfile[0], 'r') as fd:
+ try:
+ settings = json.load(fd)
+ except Exception as e:
+ logger.exception(str(e))
+ if args.verbose:
+ print("There was an error loading your config.")
+ print("Using defaults")
+
+if settings is not None:
+ SAVEPATH = Path(osp.join(osp.expanduser("~"), settings['savepath']))
+ BACKUPPATH = Path(osp.join(osp.expanduser("~"), settings['backuppath']))
+ CONFIGPATH = Path(osp.join(osp.expanduser("~"), settings['configpath']))
+ numeric_loglevel_settings = getattr(
+ logging, str(settings['loglvl']).upper())
+ setup_logging(numeric_loglevel_settings)
+ dir_list: list = [d for d in [
+ SAVEPATH, BACKUPPATH, CONFIGPATH] if not osp.exists(d)]
+ if len(dir_list) > 0:
+ configure(dir_list=dir_list)
+
+
+jobs_names = [str(j['name']).upper() for j in settings['jobs']]
+try:
+ for name in jobs_names:
+ filepath = osp.join(SAVEPATH, f"{name}.txt")
+ filepath_backup = osp.join(BACKUPPATH, f"{name}.txt")
+ if not osp.exists(filepath):
+ with open(filepath, 'x'):
+ pass
+ if not osp.exists(filepath_backup):
+ with open(filepath_backup, 'x'):
+ pass
+except Exception as e:
+ logger.exception(str(e))
+
+if settings is not None:
+ add_log(file_format=formats[str(settings['fileformat']).upper()])
+else:
+ add_log()