From b0dab7ac6e45bf807a8ed1d742ca8ba5a3fd5c82 Mon Sep 17 00:00:00 2001 From: marcelb Date: Sun, 7 Jan 2024 21:16:19 +0100 Subject: [PATCH] Readme, and comments --- README.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- lib/log.hpp | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 95 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 774a097..becfe07 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,55 @@ -# A simple Logging library for C++ +# A simple Logging library for C++ programs Logging errors to a file, daily file rotation, date and time stamps. Configurable record structure etc. + +## Features + +- Object oriented +- Customizable directory for files +- Daily file rotation +- Protection of recording consecutive errors +- Thread safe +- Exceptions +- The possibility of printing logs in the console +- Ability to keep log file open for faster speed +- Supports multiple simultaneous log files by custom directories + +## Installation + +Just download the latest release and unzip it into your project. You can turn it on with: + +``` +#include "log/lib/log.hpp" +using namespace marcelb; +``` + +## Usage + +```c++ +/** +* Initialization and declaration +*/ +log mylog("../log"); + +/** +* Put log in file +*/ +mylog.put("[EVENT] Start loging"); +``` +## License + +[APACHE 2.0](http://www.apache.org/licenses/LICENSE-2.0/) + + +## Support & Feedback + +For support and any feedback, contact the address: marcelb96@yahoo.com. + +## Contributing + +Contributions are always welcome! + +Feel free to fork and start working with or without a later pull request. Or contact for suggest and request an option. + diff --git a/lib/log.hpp b/lib/log.hpp index 9a144e3..a1e496e 100644 --- a/lib/log.hpp +++ b/lib/log.hpp @@ -13,8 +13,10 @@ namespace marcelb { using namespace std; +/** + * Log class - used at the level of one log directory +*/ class log { - public: string dir; bool isKeepOpen; bool printInConsole; @@ -24,16 +26,54 @@ class log { string path; mutex io; - log (string _dir, bool _isKeepOpen = true, bool _printInConsole = false); - + /** + * Checking if the path is in the string dir directory + */ bool isdir(); + + /** + * Opens the log file + */ bool open(); + + /** + * Closes the log file + */ void loose(); + + /** + * Get time + */ void setMoment(); + + /** + * Generate full log file path + */ void setPath(); - void put(string logline); + + /** + * Set log line time prefix + */ void setPrefix(string &logline); + public: + + /** + * Constructor, + * receives the log directory path, + * optional: a bool variable if it keeps the file open, + * and a bool variable if it prints log lines to the console + */ + log (string _dir, bool _isKeepOpen = true, bool _printInConsole = false); + + /** + * Put string log in file + */ + void put(string logline); + + /** + * Destruktor, close log files + */ ~log(); };