{"id":21586729,"url":"https://github.com/behringer24/yaul","last_synced_at":"2025-03-18T09:17:10.331Z","repository":{"id":5559611,"uuid":"6764487","full_name":"behringer24/yaul","owner":"behringer24","description":"YAUL - Yet Another UDP Logger :: taking simple UDP messages and logging them to files","archived":false,"fork":false,"pushed_at":"2013-05-23T20:40:23.000Z","size":360,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"1.0","last_synced_at":"2025-01-24T15:41:51.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/behringer24.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}},"created_at":"2012-11-19T17:40:41.000Z","updated_at":"2023-03-31T07:37:37.000Z","dependencies_parsed_at":"2022-07-07T02:03:58.001Z","dependency_job_id":null,"html_url":"https://github.com/behringer24/yaul","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fyaul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fyaul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fyaul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fyaul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/behringer24","download_url":"https://codeload.github.com/behringer24/yaul/tar.gz/refs/heads/1.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244189826,"owners_count":20412991,"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","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":[],"created_at":"2024-11-24T15:14:31.003Z","updated_at":"2025-03-18T09:17:10.309Z","avatar_url":"https://github.com/behringer24.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YAUL Yet Another UDP Logger [![Build Status](https://secure.travis-ci.org/behringer24/yaul.png?branch=development)](https://travis-ci.org/behringer24/yaul)\n\n## What is it\nYAUL is a simple and lightweight UDP logging daemon for linux written in C.\n\nIt takes UDP messages in a simple format and writes them to logfiles.\n\nYAUL is an easy solution to implement non blocking high performance logging\nsolutions.\n\n## Installation\nInstallation of yaul is very simple.\n\n1. Load the sources on your server by cloning from git or download the tar.gz\n2. unpack the ressources if you loaded the tar.gz\n3. compile sources by typing: make and then make install\n4. make sure there is a directory /var/log/yaul and the user that will run the yaul server binary has write access to that directory\n5. run the server and configure itvia the provided options \n\nSetup an appropriate logrotate pattern in your /etc/logrotate.conf or /etc/logrotate.de\n\n## Usage\n```\n    Usage: yaul [options]\n    -h, -?, --help             display command line help information\n    -d, --daemonize            daemonize server process\n    -p, --port=PORT            bind to port number\n    -b, --bind=IP              bind to ip address\n    -l, --logpath=PATH         logging to path\n    -s, --statistics=FREQUENCY log statistics to file yaul.stat after every [frequency] logmessage\n    -f, --flush=FREQUENCY      flush output stream after every [frequency] logmessage\n    -r, --redis-ip=IP          connect to redis server at IP and implicit enable logging to redis\n    -o, --redis-port=PORT      connect to redis server at PORT and implicit enable logging to redis\n    -t, --redis-ttl=TTL        the TTL in seconds of the dayly lists in redis, starting on last log message added, 0 = persist\n    -m, --max-handles=NUM      maximum number of opened files\n    -v, --version              display version information\n```\n\n## Message format\n\\[\\\u003clogname\\\u003e\\]\\\u003cmessage\\\u003e\n\nLog the text in \\\u003cmessage\\\u003e in the logfile /var/log/yaul/\\\u003clogname\\\u003e.log\n\nThe \\\u003clogname\\\u003e must consist of ASCII a-z, A-Z, 0-9 and the . (dot) for namespacing\n\nIf the \\\u003clogname\\\u003e and the paranthesis [ ] are omitted the default logname is 'yaul'. Same applies if the logname is invalid\n\n## Limitations\nThe maximum length of the logname are 255 chars.\n\nThe maximum length of the message in total (including logname) is 1500 chars by default. This also depends of the maximum length of UDP messages of your server.\n\nThe message is truncated on the first newline char. This means the message cannot consist of multiple lines.\n\n## Logrotate\nThe setup of an additional logrotate rule is simple. Just create another role in /etc/logrotate.conf or add a file with the rules for the yaul logfiles in /etc/logrotate.d/\n\na restart of a daemon is not needed. The rule is used on the next logrotate run.\n\n```\n/var/log/yaul/*.log {\n    compress\n    delaycompress\n    dateext\n    maxage 365\n    rotate 30\n    size=+4096k\n    notifempty\n    missingok\n    create 644 root root\n    postrotate\n     kill -s HUP $(pidof yaul)\n    endscript\n}\n````\n\nThis rule will rotate all logs in /var/log/yaul/ that end with .log and are over 4096k in size. The files are extended with a date stamp and kept to a maximum of 365 days. The rotation is performed only if the file is not empty. The first rotation just attaches the date stamp, on the second rotation the file is compressed by gz. The maximum number of rotated files is 30. The rotated files belong to root and are readable by all. There is no error thrown if the files do not exist at all.\n\n## Disclaimer\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" \nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbehringer24%2Fyaul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbehringer24%2Fyaul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbehringer24%2Fyaul/lists"}