{"id":26234034,"url":"https://github.com/teragrep/jla_04","last_synced_at":"2026-05-17T23:32:16.636Z","repository":{"id":57728886,"uuid":"370285600","full_name":"teragrep/jla_04","owner":"teragrep","description":"Teragrep RELP Handler for Java Util Logging","archived":false,"fork":false,"pushed_at":"2024-01-23T08:57:57.000Z","size":47,"stargazers_count":0,"open_issues_count":7,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-31T14:44:48.259Z","etag":null,"topics":["handler","java","java-util-logging","log","log-management","logger","logging","relp","relp-client","teragrep"],"latest_commit_sha":null,"homepage":"https://teragrep.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teragrep.png","metadata":{"files":{"readme":"README.adoc","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-24T08:45:42.000Z","updated_at":"2025-01-28T11:47:51.000Z","dependencies_parsed_at":"2023-12-12T09:46:30.540Z","dependency_job_id":null,"html_url":"https://github.com/teragrep/jla_04","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/teragrep/jla_04","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teragrep%2Fjla_04","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teragrep%2Fjla_04/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teragrep%2Fjla_04/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teragrep%2Fjla_04/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teragrep","download_url":"https://codeload.github.com/teragrep/jla_04/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teragrep%2Fjla_04/sbom","scorecard":{"id":874250,"data":{"date":"2025-08-11","repo":{"name":"github.com/teragrep/jla_04","commit":"60c1e1c0fbdfbbe5372ebd17d7a8210fa6a81a49"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 1/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload_release.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/upload_release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload_release.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/upload_release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload_release.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/upload_release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload_release.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/teragrep/jla_04/upload_release.yaml/master?enable=pin","Info:   0 out of  12 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/upload_release.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T05:21:57.078Z","repository_id":57728886,"created_at":"2025-08-24T05:21:57.078Z","updated_at":"2025-08-24T05:21:57.078Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33159099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"ssl_error","status_checked_at":"2026-05-17T22:39:10.741Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["handler","java","java-util-logging","log","log-management","logger","logging","relp","relp-client","teragrep"],"created_at":"2025-03-13T01:18:32.200Z","updated_at":"2026-05-17T23:32:16.619Z","avatar_url":"https://github.com/teragrep.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Java Util Logging RELP Handler\n\nimage::https://scan.coverity.com/projects/23156/badge.svg[Build Status, link=\"https://scan.coverity.com/projects/jla_04\"]\n\nCreates Java Util Logging handler that uses RELP to ensure no events are lost.\n\n== Configuring pre-built Java Util Logging application\n\nJava Util Logging supports passing a log handler without any modifications to\nthe program code.\n\nNOTE: Java Util Logging restricts one handler type from\nthe logging.properties configuration so one can not have different JLA_04\nhandler, for example, for INFO and DEBUG. See xref:README\n.adoc#_advanced_configuration[advanced configration] to get around\nthis limitation.\n\nFirst download wanted versions of jla_04, rlp_01 and syslog-java-client from the following urls:\n\n* https://search.maven.org/artifact/com.teragrep/jla_04[jla_04]\n* https://search.maven.org/artifact/com.teragrep/rlp_01[rlp_01]\n* https://search.maven.org/artifact/com.cloudbees/syslog-java-client[syslog-java-client]\n\nConfiguration file, see xref:README.adoc#Supported logging.properties file\ndirectives[logging.properties file directives] for explanation of the keys.\n\n[source,properties]\n----\nhandlers=com.teragrep.jla_04.RelpHandler\njava.util.logging.RelpHandler.default.server.address=127.0.0.1\njava.util.logging.RelpHandler.default.server.port=10601\njava.util.logging.RelpHandler.default.appname=jul-logger\njava.util.logging.RelpHandler.default.hostname=host1.example.com\njava.util.logging.RelpHandler.default.formatter=java.util.logging.SimpleFormatter\njava.util.logging.SimpleFormatter.format=[%1$tc] [%4$s] %5$s\n.level = ALL\n----\n\nThen run java while pointing classpath to the directory where you downloaded\nthe jars and the standard property \"java.util.logging\n.config.file\" to your logging.properties file.\n\nExample command-line:\n\n[source,bash]\n----\njava -cp \"path/to/downloaded/jars/*:target/example.jar\" -Djava.util.logging\n.config.file=logging.properties com.teragrep.example.Main\n.Main\n----\n\n== Advanced configuration\n\nJLA_04 supports programmatic creation of multiple handlers, these are not\navailable for programs which are not modified to support them because of Java\nUtil Logging (JUL) limitation. JUL supports only one handler of a handler\ntype via external configuration file.\n\n=== Supported system properties\n\n|===\n|Property |Description\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.hostname\n|Stream hostname identifier.Maximum length of 255 characters, limited by RFC5424\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.appname\n|Stream application identifier.Maximum length of 48 characters, limited by RFC5424\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.server.address\n|Connection destination address\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.server.connectionTimeout\n|Time to wait before timing out connection\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.server.port\n|Connection destination port\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.server.readTimeout\n|Time to wait for destination to acknowledge sent data (low values cause duplicates)\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.server.reconnectInterval\n|Time to wait between re-connection attempts\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.server.writeTimeout\n|Time to wait for destination to accept data\n\n|com.teragrep.jla_04.RelpHandler.LOGGERNAME.useStructuredData\n|Enables structured data containing uuid and source information\n|===\n\n=== Supported logging.properties file directives\n\nDefault logger has LOGGERNAME \"default\" which is the only one available\nwithout code modifications.\n\n|===\n|Property |Description\n\n|java.util.logging.RelpHandler.LOGGERNAME.hostname\n|Stream hostname identifier.Maximum length of 255 characters, limited by RFC5424\n\n|java.util.logging.RelpHandler.LOGGERNAME.appname\n|Stream application identifier.Maximum length of 48 characters, limited by RFC5424\n\n|java.util.logging.RelpHandler.LOGGERNAME.server.address\n|Connection destination address\n\n|java.util.logging.RelpHandler.LOGGERNAME.server.connectionTimeout\n|Time to wait before timing out connection\n\n|java.util.logging.RelpHandler.LOGGERNAME.server.port\n|Connection destination port\n\n|java.util.logging.RelpHandler.LOGGERNAME.server.readTimeout\n|Time to wait for destination to acknowledge sent data (low values cause duplicates)\n\n|java.util.logging.RelpHandler.LOGGERNAME.server.reconnectInterval\n|Time to wait between re-connection attempts\n\n|java.util.logging.RelpHandler.LOGGERNAME.server.writeTimeout\n|Time to wait for destination to accept data\n\n|java.util.logging.RelpHandler.LOGGERNAME.useStructuredData\n|Enables structured data containing uuid and source information\n|===\n\n=== Passing properties file\n\n[source,bash]\n----\n-Dcom.teragrep.jla_04.logging.config.file=path/to/logging.properties\n----\n\n=== Code Usage\n\n[source,java]\n----\n// RelpHandler without arguments defaults LOGGERNAME to \"default\"\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.default.server.address\", \"127.0.0.1\");\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.default.server.port\", \"1667\");\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.default.appname\", \"Default\");\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.default.hostname\", \"localhost.localdomain\");\nRelpHandler relpHandler_default = new RelpHandler();\n\n// Other logger\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.custom.server.address\", \"127.0.0.1\");\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.custom.server.port\", \"1668\");\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.custom.appname\", \"CustomLogger\");\nSystem.setProperty(\"com.teragrep.jla_04.RelpHandler.custom.hostname\", \"customhost.localdomain\");\nRelpHandler relpHandler_custom = new RelpHandler(\"custom\");\n\n// Reset logger and add handlers to it\nLogManager.getLogManager().reset();\nlogger.addHandler(relpHandler_default);\nlogger.addHandler(relpHandler_custom);\n\n// Set level and send messages\nlogger.setLevel(Level.WARNING);\nlogger.severe(\"Severe message\");\n----\n\n=== Maven dependency definition\n\n[source,xml]\n----\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.teragrep\u003c/groupId\u003e\n    \u003cartifactId\u003ejla_04\u003c/artifactId\u003e\n    \u003cversion\u003e%VERSION%\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\n== Contributing\n \n// Change the repository name in the issues link to match with your project's name\n \nYou can involve yourself with our project by https://github.com/teragrep/jla_04/issues/new/choose[opening an issue] or submitting a pull request.\n \nContribution requirements:\n \n. *All changes must be accompanied by a new or changed test.* If you think testing is not required in your pull request, include a sufficient explanation as why you think so.\n. Security checks must pass\n. Pull requests must align with the principles and http://www.extremeprogramming.org/values.html[values] of extreme programming.\n. Pull requests must follow the principles of Object Thinking and Elegant Objects (EO).\n \nRead more in our https://github.com/teragrep/teragrep/blob/main/contributing.adoc[Contributing Guideline].\n \n=== Contributor License Agreement\n \nContributors must sign https://github.com/teragrep/teragrep/blob/main/cla.adoc[Teragrep Contributor License Agreement] before a pull request is accepted to organization's repositories.\n \nYou need to submit the CLA only once. After submitting the CLA you can contribute to all Teragrep's repositories. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteragrep%2Fjla_04","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteragrep%2Fjla_04","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteragrep%2Fjla_04/lists"}