{"id":21171160,"url":"https://github.com/fuchs-fabian/simbashlog","last_synced_at":"2025-09-07T20:49:46.960Z","repository":{"id":256585900,"uuid":"855926016","full_name":"fuchs-fabian/simbashlog","owner":"fuchs-fabian","description":"Simply log (and debug) your scripts/programs with Bash","archived":false,"fork":false,"pushed_at":"2024-12-01T15:43:51.000Z","size":648,"stargazers_count":6,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-09T20:52:44.444Z","etag":null,"topics":["bash","bash-scripting","linux","logging","logging-framework","simbashlog"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuchs-fabian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-11T17:23:42.000Z","updated_at":"2025-04-27T19:28:04.000Z","dependencies_parsed_at":"2024-09-11T23:09:32.646Z","dependency_job_id":"6784f9c6-af19-40d7-98ec-1f465fe1a32c","html_url":"https://github.com/fuchs-fabian/simbashlog","commit_stats":null,"previous_names":["fuchs-fabian/simbashlog"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/fuchs-fabian/simbashlog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fsimbashlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fsimbashlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fsimbashlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fsimbashlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuchs-fabian","download_url":"https://codeload.github.com/fuchs-fabian/simbashlog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fsimbashlog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274095116,"owners_count":25221432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","bash-scripting","linux","logging","logging-framework","simbashlog"],"created_at":"2024-11-20T16:03:08.561Z","updated_at":"2025-09-07T20:49:46.935Z","avatar_url":"https://github.com/fuchs-fabian.png","language":"Shell","funding_links":["https://www.paypal.com/donate/?hosted_button_id=4G9X8TDNYYNKG"],"categories":[],"sub_categories":[],"readme":"# `simbashlog`: Simply log (and debug) your scripts/programs with Bash\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./LICENSE\"\u003e\n    \u003cimg alt=\"GPL-3.0 License\" src=\"https://img.shields.io/badge/GitHub-GPL--3.0-informational\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/simbashlog/wiki\"\u003e\n    \u003cimg alt=\"Wiki\" src=\"https://img.shields.io/website?down_message=offline\u0026label=Wiki\u0026up_color=007aff\u0026up_message=online\u0026url=https%3A%2F%2Fgithub.com%2Ffuchs-fabian%2Fsimbashlog%2Fwiki\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://matrix.to/#/#simbashlog:matrix.org\"\u003e\n    \u003cimg alt=\"Matrix\" src=\"https://img.shields.io/badge/matrix-000000?style=for-the-badge\u0026logo=Matrix\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/simbashlog\"\u003e\n    \u003cimg src=\"https://github-readme-stats.vercel.app/api/pin/?username=fuchs-fabian\u0026repo=simbashlog\u0026theme=holi\u0026hide_border=true\u0026border_radius=10\" alt=\"Repository simbashlog\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/simbashlog/blob/main/examples/normal-usage.bash\"\u003e\n    \u003cimg alt=\"Example - normal usage\" src=\"https://img.shields.io/website?down_message=offline\u0026label=example%20-%20normal%20usage\u0026up_color=007aff\u0026up_message=online\u0026url=https%3A%2F%2Fgithub.com%2Ffuchs-fabian%2Fsimbashlog%2Fblob%2Fmain%2Fexamples%2Fnormal-usage.bash\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/simbashlog/blob/main/examples/advanced-usage.bash\"\u003e\n    \u003cimg alt=\"Example - advanced usage\" src=\"https://img.shields.io/website?down_message=offline\u0026label=example%20-%20advanced%20usage\u0026up_color=007aff\u0026up_message=online\u0026url=https%3A%2F%2Fgithub.com%2Ffuchs-fabian%2Fsimbashlog%2Fblob%2Fmain%2Fexamples%2Fadvanced-usage.bash\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## ⚠️ **Disclaimer - Important!**\n\n\u003e `simbashlog` is still at a very early stage of development.\\\n\u003e There may still be bugs that have not been accounted.\n\nWhen it is used in production, it is important that it is tested on a test system to ensure that there are no problems and that it behaves as desired.\n\nIn general, it is important that the script is checked so that it can be understood what it does and how it works.\n\nNo liability is accepted for damage of any kind resulting from the use of `simbashlog`.\n\nFor more information, please read the [LICENSE](./LICENSE).\n\n### Tested Linux Distributions\n\n| Number | Status | Platform                                       |\n|--------|--------|------------------------------------------------|\n| 1      | ✅     | [Fedora](https://fedoraproject.org/en/)        |\n| 2      | ✅     | [Ubuntu](https://ubuntu.com/download)          |\n| 3      | ✅     | [Debian](https://www.debian.org/index.en.html) |\n\nIt may also work on other systems, but it has not been tested.\n\n## Description\n\n### What is `simbashlog`?\n\n`simbashlog` is a simple and easy-to-use logging tool for Bash environments. It is designed to make logging and debugging in Bash scripts and Linux environments which uses Bash as easy as possible.\n\nIt can be sourced in Bash scripts or called as a standalone script with arguments so that it can be used with other scripts or programs.\n\n`simbashlog` may be the first Bash script to include functions that mimic functions of data types found in other programming languages.\n\nThis means that when the script is sourced, it contains functions that make it much easier to create your own Bash scripts.\n\nUltimately, `simbashlog` takes the work out of logging and debugging Bash scripts so that the developer can concentrate on the actual script.\n\nBy default, everything is set so that you can get started straight away without any major configurations.\nNevertheless, the behavior is highly customizable so that it can be used for many different use cases.\n\n### Why `simbashlog`?\n\nLogging and debugging in Bash scripts or other programming languages can often be a tedious and complicated task. Integrating a logging tool into your code can be just as challenging, especially when it comes to sensitive data such as login credentials. Many developers unintentionally embed such information directly into their code, leading to potential security issues. While tools like Secret Manager exist, they can be overly complex for beginners and even cumbersome for experienced developers.\n\nThis is where `simbashlog` comes in. It is designed to simplify logging in Bash scripts and other programming languages (_**note**: console arguments must be possible_), making it easy to use without compromising security. There is no need to hard-code credentials or sensitive information. Instead, you can configure a separate notifier to handle alerts, with all credentials stored securely outside the codebase so they don't end up in your repository.\n\nWith `simbashlog`, your logs follow a consistent structure, making them easy to process and analyze. Whether you are a beginner or an expert, this tool offers a seamless log management solution, providing flexibility and security.\n\n### What makes it special?\n\nQuite simply, it's super easy to use, very flexible and the credentials are no longer stored in the code.\nThis makes it very easy to create a script or program that logs all the necessary information. And if you want, you can also be notified about it.\n\nThe \"only\" basic requirement is that the script or tool runs on a Linux system and Bash is installed.\nWhy \"only\" in quotation marks? Because it could also run on other untested systems, but this has not yet been tested. Problems may arise with certain commands such as `date` or `logger`.\n\n#### Notifier\n\nA notifier is ultimately a script/tool or interface that ensures that various monitoring tools receive information or log information is transmitted to a messenger.\n\nPossible examples of \"monitoring tools\":\n\n- [Checkmk](https://checkmk.com/)\n- [Nagios](https://www.nagios.org/)\n- [Icinga](https://icinga.com/)\n- [Uptime Kuma](https://uptime.kuma.pet/)\n- [Graylog](https://graylog.org/)\n\nPossible examples of \"messengers\":\n\n- E-Mail\n- [Pushover](https://pushover.net/)\n- [Gotify](https://gotify.net/)\n- [Matrix](https://matrix.org/)\n- [Slack](https://slack.com/)\n- [Discord](https://discord.com/)\n- [Telegram](https://web.telegram.org/)\n\nA notifier can also be misused to write log information to a database or generally to pre-process the logged data again.\n\nNotifiers can be found in a separate repository:\n\n\u003cdiv align=\"left\"\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/simbashlog-notifiers\"\u003e\n    \u003cimg src=\"https://github-readme-stats.vercel.app/api/pin/?username=fuchs-fabian\u0026repo=simbashlog-notifiers\u0026theme=holi\u0026hide_border=true\u0026border_radius=10\" alt=\"Repository simbashlog-notifiers\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n### What is it not?\n\n`simbashlog` is not a replacement for the monitoring tools or messengers mentioned above!\n\nIt merely makes it possible to feed these tools with information.\n\n### Who is it for?\n\n`simbashlog` is suitable for beginners, advanced users and professionals.\nIt is therefore suitable for small, medium and large companies.\n\nIt does not matter if `simbashlog` is used on a Linux server, a desktop Linux system, Docker...\n\n\u003cdiv align=\"left\"\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/simbashlog-debian-docker-template\"\u003e\n    \u003cimg src=\"https://github-readme-stats.vercel.app/api/pin/?username=fuchs-fabian\u0026repo=simbashlog-debian-docker-template\u0026theme=holi\u0026hide_border=true\u0026border_radius=10\" alt=\"Repository simbashlog-debian-docker-template\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n### The Goal of `simbashlog`\n\nThe goal of `simbashlog` is to make logging and debugging on Linux environments as easy as possible.\n\nThe basic idea is that open source software should be accessible to everyone and there should be no barriers to using it.\nSince there is no tool that makes logging as easy as it should be (_in my opinion_), `simbashlog` was developed.\n\nThere should be no fixed connection in the code, but it should simply be possible to configure the way where the log information goes without having to do anything in the code.\n\n## Getting Started\n\n`simbashlog` does not need to be installed. It can simply be sourced as a script or executed directly. Nevertheless, the following shows a few ways in which you can get started with `simbashlog`.\n\n### Installation\n\n\u003e ⚠️ **Important**:\n\u003e\n\u003e It is recommended to install `simbashlog` for all users to avoid problems.\\\n\u003e If this is not desired and it is only required for the current user, `/usr/bin/` should be replaced by `$HOME/.local/bin/`\n\nMove to the directory where the script should be cloned. For example:\n\n```bash\ncd /opt/\n```\n\n\u003e If it is only for the current user, the directory could be replaced by `$HOME/.local/share/`.\n\nClone `simbashlog` with HTTPS:\n\n```bash\ngit clone https://github.com/fuchs-fabian/simbashlog.git\n```\n\nOr clone `simbashlog` with HTTPS and submodules:\n\n```bash\ngit clone --recurse-submodules https://github.com/fuchs-fabian/simbashlog.git\n```\n\n\u003e **Notes**:\n\u003e\n\u003e - `\u003c/path/to\u003e` is the path to the directory where the repository was cloned and should be replaced with the actual path.\n\u003e - `sudo` is only necessary if it exists on the system and the script should be called from anywhere.\n\nMake the script executable:\n\n```bash\nchmod +x \u003c/path/to\u003e/simbashlog/src/simbashlog.bash\n```\n\nRun the following command so that the script can be called from anywhere:\n\n```bash\nsudo ln -s \u003c/path/to\u003e/simbashlog/src/simbashlog.bash /usr/bin/simbashlog\n```\n\n\u003e **Note**: Do not use a relative path here, as this will break the symbolic link.\n\nThis will create a symbolic link to the script in the `/usr/bin/` directory.\n\nTo check whether it worked:\n\n```bash\nls -l /usr/bin/simbashlog\n```\n\n```bash\nsimbashlog --version\n```\n\nTo update the script, move to the directory where the repository was cloned.\n\n**Undo the executability of the `simbashlog.bash` script (`chmod -x`), otherwise the pull will show that there are changes and it will not work!**\n\nRun the following command:\n\n```bash\ngit pull --rebase\n```\n\nThe `simbashlog.bash` script may need to be made **executable again**.\n\n\u003e ⚠️ **Important**:\n\u003e\n\u003e Do not delete the repository, as this will also break the symbolic link.\\\n\u003e If it was intended, the symbolic link must be deleted: `sudo rm /usr/bin/simbashlog`\n\n### Submodule\n\nIf you want to use `simbashlog` as a submodule in your repository, you can do this as follows:\n\n```bash\ngit submodule add https://github.com/fuchs-fabian/simbashlog.git src/simbashlog\n```\n\n```bash\ngit add .\n```\n\n```bash\ngit commit -m \"Add simbashlog as submodule\"\n```\n\n```bash\ngit push\n```\n\nClone your repository with `simbashlog` as submodule:\n\n```bash\ngit clone --recurse-submodules https://github.com/\u003crepo\u003e.git\n```\n\nReplace `\u003crepo\u003e` with the actual repository name.\n\nIf you normally clone the repository, the submodule will not be cloned, so you have to do it manually:\n\nInitialize and update the submodule:\n\n```bash\ngit submodule update --init --recursive\n```\n\nThis will add the contents of the `simbashlog` repository to your repository.\n\n## Usage\n\n### Usage with `source`\n\nThe easiest way to use `simbashlog` is to take a look at the examples in the [`examples`](./examples/) directory.\n\n### Usage with calling the script directly with arguments\n\n```plain\nUsage: (sudo) simbashlog\n\n  -h, --help                                      Show help\n\n  -v, --version                                   Show version\n\n  -a, --action            [action]                Action for logging\n                                                  {console,log,json,system,all}\n                                                  Important: Json logging can lead to performance problems\n                                                  Note: There will always be an output on the console\n                                                  Addition for 'system': If '--script-name' was used, this is the tag that can be searched for.\n                                                                         Otherwise the absolute path of 'simbashlog' is used.\n\n  -s, --severity          [severity]              Severity for logging\n                                                  {\n                                                      debug,  7,\n                                                      info,   6,\n                                                      notice, 5,\n                                                      warn,   4,\n                                                      error,  3,\n                                                      crit,   2,\n                                                      alert,  1,\n                                                      emerg,  0\n                                                  }\n\n  -m, --message           [message]               Message to be logged\n\n  --notifier              [notifier]              'simbashlog' notifier (https://github.com/fuchs-fabian/simbashlog-notifiers)\n                                                  Important: The notifier must be correctly installed\n\n  --notifier-config       [notifier config]       'simbashlog' notifier configuration path\n                                                  Important: The path will be passed to the notifier\n                                                  Note: '--notifier' should be used before this, otherwise it has no effect\n                                                  Default: The default configuration file of the notifier\n\n  --enable-date-in-console-output                 Enable date in console output\n\n  --log-level             [log level]             Log level\n                                                  {0,1,2,3,4,5,6,7}\n                                                  Note: '-a, --action' should be used before and set to 'console' 'log', 'json' or 'all', otherwise it has no effect\n                                                  Default: '6'\n\n  --system-log-level      [system log level]      Log level for system logging\n                                                  {0,1,2,3,4,5,6,7}\n                                                  Note: '-a, --action' should be used before this and set to 'system' or 'all', otherwise it has no effect\n                                                  Default: '4'\n\n  --facility              [facility]              Facility name for system logging\n                                                  'logger' facility names ('man logger'):\n                                                  {\n                                                      auth,authpriv,cron,\n                                                      daemon,ftp,kern,\n                                                      lpr,mail,news,syslog,user,uucp,\n                                                      local0,local1,local2,local3,local4,local5,local6,local7,\n                                                      security\n                                                  }\n                                                  Note: '-a, --action' should be used before this and set to 'system' or 'all', otherwise it has no effect\n                                                  Default: 'user'\n\n  --script-name           [script name]           Script name\n\n  --enable-script-name-in-console-output          Enable script name in console output\n                                                  Note: '--script-name' should be used before this, otherwise it has no effect\n\n  --log-dir               [log dir]               Directory path for log files\n                                                  Important: Be careful! If '--show-log-files' is not used, there is no output where exactly the log files are located\n                                                  Note: '-a, --action' should be used before this and set to 'log', 'json' or 'all', otherwise it has no effect\n                                                  Default: '/tmp/simbashlogs/'\n\n  --show-log-files                                Show log files after each log operation\n                                                  Note: '-a, --action' should be used before this and set to 'log', 'json' or 'all', otherwise it has no effect\n\n  --disable-simple-log-dir-structure              Disable simple log dir structure\n                                                  Note: '-a, --action' should be used before this and set to 'log', 'json' or 'all', otherwise it has no effect\n\n  --enable-combined-log-files                     Enable combined log files\n                                                  Note: '-a, --action' should be used before this and set to 'log', 'json' or 'all', otherwise it has no effect\n\n  --gui                                           Enable GUI popups for logging notifications with 'zenity' or 'yad'\n\n  --popup-width           [popup width]           Popup window width\n                                                  Note: '--gui' should be used before this, otherwise it has no effect\n                                                  Default: '500'\n\n  --popup-height          [popup height]          Popup window height\n                                                  Note: '--gui' should be used before this, otherwise it has no effect\n                                                  Default: '100'\n```\n\n## Examples\n\n### Console output\n\n\u003e **Note**: There is an internal `simbashlog` warning, because the `simbashlog-example-notifier` is not installed.\n\n![normal usage console output](./images/normal-usage-console-ouput.png)\n\n### System log content\n\nCommand with `journalctl`:\n\n```bash\njournalctl -t \u003ctag\u003e\n```\n\nReplace `\u003ctag\u003e` with the actual tag from the `simbashlog` **summary**.\n\n![normal usage system log content](./images/normal-usage-system-log-content.png)\n\n### `.log` file\n\n![normal usage log file content](./images/normal-usage-log-file-content.png)\n\n### `.json` log file\n\n![normal usage json log file content](./images/normal-usage-json-log-file-content.png)\n\n## More information for constants, variables and functions\n\n\u003e Constants, variables and functions with a `_` should not be overwritten under any circumstances!\n\n| Color | Category  | Description                 |\n|-------|-----------|-----------------------------|\n| 🟩    | Beginner  | Suitable for beginners      |\n| 🟨    | Advanced  | Suitable for advanced users |\n| 🟪    | Expert    | Suitable for experts        |\n\n### Constants\n\n#### 🟩 General constants\n\n| Constant                                          |\n|---------------------------------------------------|\n| `CONST_CURRENT_PID`                               |\n| `CONST_SCRIPT_NAME_WITH_CURRENT_PATH`             |\n| `CONST_SIMPLE_SCRIPT_NAME`                        |\n| `CONST_SIMPLE_SCRIPT_NAME_WITHOUT_FILE_EXTENSION` |\n| `CONST_ABSOLUTE_SCRIPT_NAME`                      |\n| `CONST_ABSOLUTE_SCRIPT_DIR`                       |\n\n#### 🟨 `simbashlog` constants\n\n| Constant                                                      |\n|---------------------------------------------------------------|\n| `CONST_SIMBASHLOG_VERSION`                                    |\n| `CONST_SIMBASHLOG_NAME`                                       |\n| `CONST_SIMBASHLOG_GITHUB_LINK`                                |\n| `CONST_SIMBASHLOG_PAYPAL_DONATE_LINK`                         |\n| `CONST_SIMBASHLOG_NOTIFIERS_GITHUB_LINK`                      |\n| `CONST_SIMBASHLOG_LOG_DIR`                                    |\n| `CONST_SIMBASHLOG_REQUIRED_EXTERNAL_PACKAGE_FOR_JSON_LOGGING` |\n\n#### 🟪 Additional constants\n\n| Constant                                                   |\n|------------------------------------------------------------|\n| `CONST_ANSI_COLORS`                                        |\n| `CONST_COLOR_CODE_FOR_RESETTING_FOREGROUND_AND_BACKGROUND` |\n| `CONST_MIN_ALLOWED_SEVERITY_CODE`                          |\n| `CONST_MAX_ALLOWED_SEVERITY_CODE`                          |\n| `CONST_SEVERITIES`                                         |\n\n### Variables\n\n#### 🟨 Before sourcing\n\n| Variable                | Type    | Possible Values | Default Value |\n|-------------------------|---------|-----------------|---------------|\n| `ENABLE_TRAP_FOR_DEBUG` | Boolean | `true`, `false` | `false`       |\n| `ENABLE_TRAP_FOR_EXIT`  | Boolean | `true`, `false` | `true`        |\n\n#### 🟩 Before and after sourcing\n\n| Variable                                                   | Type    | Possible Values                                               | Default Value               |\n|------------------------------------------------------------|---------|---------------------------------------------------------------|-----------------------------|\n| `ENABLE_LOG_FILE`                                          | Boolean | `true`, `false`                                               | `true`                      |\n| `ENABLE_JSON_LOG_FILE`                                     | Boolean | `true`, `false`                                               | `false`                     |\n| `ENABLE_LOG_TO_SYSTEM`                                     | Boolean | `true`, `false`                                               | `false`                     |\n| `LOG_DIR`                                                  | String  | Path to the log directory                                     | `$CONST_SIMBASHLOG_LOG_DIR` |\n| `ENABLE_SIMPLE_LOG_DIR_STRUCTURE`                          | Boolean | `true`, `false`                                               | `true`                      |\n| `ENABLE_COMBINED_LOG_FILES`                                | Boolean | `true`, `false`                                               | `false`                     |\n| `LOG_LEVEL`                                                | Integer | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`                        | `6`                         |\n| `LOG_LEVEL_FOR_SYSTEM_LOGGING`                             | Integer | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`                        | `4`                         |\n| `FACILITY_NAME_FOR_SYSTEM_LOGGING`                         | String  | `auth`, `authpriv`, `cron`, `daemon`, `ftp`, `kern`, `lpr`, `mail`, `news`, `syslog`, `user`, `uucp`, `local0`, `local1`, `local2`, `local3`, `local4`, `local5`, `local6`, `local7`, `security` | `user` |\n| `ENABLE_EXITING_SCRIPT_IF_AT_LEAST_ERROR_IS_LOGGED`        | Boolean | `true`, `false`                                               | `false`                     |\n| `ENABLE_DATE_IN_CONSOLE_OUTPUTS_FOR_LOGGING`               | Boolean | `true`, `false`                                               | `false`                     |\n| `SHOW_CURRENT_SCRIPT_NAME_IN_CONSOLE_OUTPUTS_FOR_LOGGING`  | String  | `path`, `simple`, `simple_without_file_extension`, `absolute` | `path`                      |\n| `PARENT_SCRIPT_NAME`                                       | String  | Path of the parent script (or empty)                          | Empty if the parent script could not be determined |\n| `ENABLE_PARENT_SCRIPT_NAME_IN_CONSOLE_OUTPUTS_FOR_LOGGING` | Boolean | `true`, `false`                                               | `false`                     |\n| `ENABLE_GUI_POPUPS_FOR_LOGGING_NOTIFICATIONS`              | Boolean | `true`, `false`                                               | `false`                     |\n| `LOG_POPUP_NOTIFICATION_WINDOW_WIDTH`                      | Integer | Width in pixels                                               | `500`                       |\n| `LOG_POPUP_NOTIFICATION_WINDOW_HEIGHT`                     | Integer | Height in pixels                                              | `100`                       |\n| `SIMBASHLOG_NOTIFIER`                                      | String  | Path to the notifier script / notifier command (or empty)     | Empty                       |\n| `SIMBASHLOG_NOTIFIER_CONFIG_PATH`                          | String  | Path to the notifier configuration file (or empty)            | Empty                       |\n| `ENABLE_SUMMARY_ON_EXIT`                                   | Boolean | `true`, `false`                                               | `false`                     |\n\n### Functions\n\n\u003e For more detailed information on how the following functions can be used, simply take a look at the [source code](./src/simbashlog.bash). They are documented there in detail.\n\n#### 🟩 Logging functions\n\nThe easiest way to understand how the functions are used is to see how they are used. Take a look at this:\n\n- [normal-usage.bash](./examples/normal-usage.bash)\n- [advanced-usage.bash](./examples/advanced-usage.bash)\n\n```bash\nlog\n\nlog_emerg\nlog_alert\nlog_crit\nlog_error\nlog_warn\nlog_notice\nlog_info\nlog_debug\n```\n\n#### 🟨 Additional functions\n\nSince `simbashlog` has become much more complex than expected, there are some functions that can also be used when the script is sourced.\n\nAll the functions that can make life easier with Bash are listed below:\n\n```bash\nadd_item_to_indexed_array\nadd_item_to_list\nadd_key_value_pair_to_assoc_array\nadd_key_value_pair_to_dict\nadd_or_update_key_value_pair_in_assoc_array\nadd_or_update_key_value_pair_in_dict\nadd_unique_item_to_indexed_array\nadd_unique_item_to_list\ncontains_key_in_assoc_array\ncontains_key_in_dict\ncontains_not_key_in_assoc_array\ncontains_not_key_in_dict\ndelete_key_value_pair_by_key_from_assoc_array\ndelete_key_value_pair_by_key_from_dict\ndirectory_exists\ndirectory_not_exists\nextract_basename_without_file_extensions_from_file\nfile_exists\nfile_not_exists\nget_available_popup_tool\nget_color_code\nget_key_by_value_from_assoc_array\nget_key_by_value_from_dict\nget_severity_code\nget_severity_name\nget_value_by_key_from_assoc_array\nget_value_by_key_from_dict\nis_array\nis_array_empty\nis_array_not_empty\nis_assoc_array\nis_boolean\nis_current_script_executed_directly\nis_current_script_not_executed_directly\nis_current_script_not_sourced\nis_current_script_sourced\nis_dict_empty\nis_dict_not_empty\nis_false\nis_greater\nis_greater_or_equal\nis_indexed_array\nis_less\nis_less_or_equal\nis_list_empty\nis_list_not_empty\nis_not_boolean\nis_not_numeric\nis_numeric\nis_numeric_and_greater_than_zero\nis_numeric_in_range\nis_package_installed\nis_true\nis_var_empty\nis_var_equal\nis_var_not_empty\nis_var_not_equal\nnormalize_path\npath_contains_slash\npath_ends_with_slash\npath_exists\npath_is_absolute\npath_is_not_absolute\npath_is_not_relative\npath_is_relative\npath_not_contains_slash\npath_not_ends_with_slash\npath_not_exists\npath_not_starts_with_slash\npath_starts_with_slash\nprint_all_color_combinations\nprint_all_log_counters\nprint_all_log_files\nprint_assoc_array\nprint_available_functions\nprint_colored_text\nprint_dict\nprint_indexed_array\nprint_list\nprint_severities\nprint_stderr\nprint_var_with_current_value\nto_lowercase\nto_uppercase\nupdate_key_value_pair_in_assoc_array\nupdate_key_value_pair_in_dict\nwrite_line_to_file\n```\n\n## Bugs, Suggestions, Feedback, and Needed Support\n\n\u003e If you have any bugs, suggestions or feedback, feel free to create an issue or create a pull request with your changes.\n\nThis also includes testing the script on other Linux distributions.\n\n## Support Me\n\nIf you like `simbashlog`, you think this tool is useful and saves you a lot of work and nerves and lets you sleep better, please give it a star and consider donating.\n\n\u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=4G9X8TDNYYNKG\" target=\"_blank\"\u003e\n  \u003c!--\n    https://github.com/stefan-niedermann/paypal-donate-button\n  --\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png\" style=\"height: 90px; width: 217px;\" alt=\"Donate with PayPal\"/\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuchs-fabian%2Fsimbashlog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuchs-fabian%2Fsimbashlog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuchs-fabian%2Fsimbashlog/lists"}