Thank you @pinghajen, this is a great start. Couple of requests.
[ ] PrintCommand is separate from Logging and should not be combined. Logging could be added into the PrintCommand's function to add what it does to the log.
[ ] (fern::log_file("logs/log.log")?) A new log file should be created each run, with a datetimestamp for name. like 202402220701.log
[ ] Logging should be a fire and forget and not require a start or an unwrap method. Have it static load on start and then thread safe access, which can be tricky since we're writing to a file.
Added logging to have a similar interface as the log crate but also have cross platform color in the stdout while adding logging to a file.