diff --git a/Makefile b/Makefile index 07cf825..c0d93c0 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ install: sudo apt-get update && sudo apt install python3-venv -y - sudo mkdir -p /opt/remindme_caldav/status /etc/remindme_caldav + sudo mkdir -p /opt/remindme_caldav/logs /etc/remindme_caldav python3 -m venv /opt/remindme_caldav/.venv cp remindme_caldav.py alert_processor.py /opt/remindme_caldav/ . /opt/remindme_caldav/.venv/bin/activate && pip3 install -r requirements.txt @@ -16,6 +16,3 @@ uninstall: rm -rf /opt/remindme_caldav rm -rf /etc/remindme_caldav rm /etc/systemd/system/remindme_caldav.service - -clean: - deactivate diff --git a/README.md b/README.md index f359361..3eea96f 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ smtp_username = "your-username" smtp_password = "your-password" ... ``` +The config file is passed to the script with the `--config` argument. You can then run the script with: ```bash @@ -51,17 +52,45 @@ python3 remindme_caldav.py --config /path/to/your/config.toml ## Installation A Makefile and systemd service file is also included for Debian/Ubuntu based -systems. +systems. Make sure to modify the config file in the source directory before +installation. Also, please ensure that the calendar_dir exists and syncing +from a CalDav server before running the script. This Makefile does the following: - install: Installs Python 3.11, creates a virtual environment in /opt/remindme_caldav/.venv, installs dependencies from requirements.txt - into this virtual environment, copies your script to /opt/remindme_caldav/, - and sets up the systemd service file. + into this virtual environment, copies the script to /opt/remindme_caldav/, + copies the config file to /etc/remindme_caldav and sets up the systemd + service file. It also sets up the logging dir in /opt/remindme_caldav/logs. - uninstall: Stops and disables the systemd service, removes the installation directory (/opt/remindme_caldav/), and deletes the systemd service file. - - clean: Deactivates the virtual environment. +## Logging +The script uses Python's built-in logging module to handle logging. The +setup_logging(log_location) function sets up basic configuration for the +logger, including the log file location and format. +Log levels are used to categorize logs based on their severity: DEBUG, INFO, +WARNING, ERROR, CRITICAL. By default, the log level is set to INFO. This can +be modified by passing a --loglevel argument when running the script. + +The setup_log_location(logdir) function sets up the locations for three types +of logs: log, status, and alert_history. + + - Log Location: This is where script logs are stored. These logs contain + information about the general operation of the script, such as when it + starts or stops, what files it's processing, errors etc. The logdir argument + specifies the directory where these log files will be created. + + - Status Location: This file contains information about the current state of + each event being monitored by the script. It includes details such as the + current time, the name of the event, its recurrence dates, and when the + next alert will be triggered. The purpose of this file is to provide a + real-time status update on what's happening in the script. + + - Alert History Location: This file logs all alerts that have been sent out + by the script. It includes details such as the timestamp when the alert was + triggered, and the definition time of the alert. The purpose of this file + is to keep a record of all alerts that have been sent.