{"id":15044687,"url":"https://github.com/truthbean/logger","last_synced_at":"2025-04-10T00:43:02.182Z","repository":{"id":57729176,"uuid":"240157545","full_name":"TruthBean/logger","owner":"TruthBean","description":"logger adapter","archived":false,"fork":false,"pushed_at":"2025-01-31T12:20:51.000Z","size":592,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-04-10T00:42:55.413Z","etag":null,"topics":["java17","log4j2","logger","slf4j","spi"],"latest_commit_sha":null,"homepage":"http://www.truthbean.com/logger/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mulanpsl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TruthBean.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":"2020-02-13T02:09:22.000Z","updated_at":"2025-01-31T12:20:55.000Z","dependencies_parsed_at":"2024-01-25T08:28:22.207Z","dependency_job_id":"8c35d6dd-c0c9-48b9-8fc8-850608689fd0","html_url":"https://github.com/TruthBean/logger","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/TruthBean%2Flogger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruthBean%2Flogger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruthBean%2Flogger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruthBean%2Flogger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TruthBean","download_url":"https://codeload.github.com/TruthBean/logger/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137998,"owners_count":21053775,"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":["java17","log4j2","logger","slf4j","spi"],"created_at":"2024-09-24T20:50:54.623Z","updated_at":"2025-04-10T00:43:02.162Z","avatar_url":"https://github.com/TruthBean.png","language":"Java","readme":"# logger\nlogger adapter\n\n项目回归~\n\n## 日志级别\n    1. fatal\n        导致系统崩溃无法运行的错误\n    \n    2. error\n        导致数据错误或者丢失，但是系统依然能运行\n    \n    3. warn\n        能容忍但是必须被记录下来的错误\n    \n    4. info\n        在正常情况下需要被记录的重要信息\n    \n    5. debug\n        用于记录方便开发者排查错误及潜在隐患的信息\n    \n    6. trace\n        用于跟踪数据的变化\n\n## maven\n```xml\n    \u003cdependencyManagement\u003e\n        \u003cdependencies\u003e\n            \u003c!-- import --\u003e\n            \u003cdependency\u003e\n              \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n              \u003cartifactId\u003elogger-dependence\u003c/artifactId\u003e\n              \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n              \u003cscope\u003eimport\u003c/scope\u003e\n              \u003ctype\u003epom\u003c/type\u003e\n            \u003c/dependency\u003e\n        \u003c/dependencies\u003e\n    \u003c/dependencyManagement\u003e\n\n    \u003cdependencies\u003e\n        \u003c!-- logger adapter core --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003etruthbean-logger-core\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n    \n        \u003c!-- log4j2 adapter --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003elogger-to-log4j2\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n    \n        或者使用\n        \u003c!-- slf4j adapter --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003elogger-to-slf4j\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n    \n        或者在测试的时候使用以下中的一个\n        \u003c!-- jdk adapter --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003ejdk-adapter\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n        \n        \u003c!-- jul adapter --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003elogger-to-jul\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n    \n        \u003c!-- stdout adapter --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003elogger-stdout\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n        \n        \u003c!-- kotlin支持 --\u003e\n        \u003cdependency\u003e\n              \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n              \u003cartifactId\u003elogger-kotlin\u003c/artifactId\u003e\n              \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n            \u003c/dependency\u003e\n    \n        包含依赖的boot\n        \u003c!-- log4j2 boot --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003elog4j2-boot\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n        \n        \u003c!-- slf4j boot --\u003e\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n          \u003cartifactId\u003eslf4j-boot\u003c/artifactId\u003e\n          \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n        \n        \u003c!-- tomcat juli --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n            \u003cartifactId\u003ejuli-bridge\u003c/artifactId\u003e\n            \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n    \n        \u003c!-- spring boot starter --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.truthbean.logger\u003c/groupId\u003e\n            \u003cartifactId\u003elogger-spring-boot-starter\u003c/artifactId\u003e\n            \u003cversion\u003e0.5.6-RELEASE\u003c/version\u003e\n        \u003c/dependency\u003e\n\n    \u003c/dependencies\u003e\n```\n\n### log4j2的注意事项\n如果使用spring-boot，首先应该排除springboot中自带的logback日志，引入log4j2的日志\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n    \u003cartifactId\u003espring-boot-starter\u003c/artifactId\u003e\n    \u003cexclusions\u003e\n        \u003cexclusion\u003e\n            \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n            \u003cartifactId\u003espring-boot-starter-logging\u003c/artifactId\u003e\n        \u003c/exclusion\u003e\n    \u003c/exclusions\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n    \u003cartifactId\u003espring-boot-starter-log4j2\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n其次在编写的过程中，尽量使用log4j2-api中的接口（log4j2-core是log4j2-api的官方实现，性能比logback、log4j、jul都要高很多），而不是其他门面日志系统（log4j2自身也是门面模式）；\n同时，日志的message尽量不能相同，不然很难排查问题，失去了日志的原有功能点。\n```java\nimport org.apache.logging.log4j.Logger;\nimport org.apache.logging.log4j.LogManager;\n\n...\n\nprivate static final Logger LOGGER = LogManager.getLogger(XXXX.class);\n```\nlog4j2.xml配置文件中，不允许显示行号。使用%c或者%c{36}或者%logger或者%logger{36}，注意是小写的c，大写的C将使用堆栈快照获取日志的位置信息\n`官方文档显示的信息，显示日志调用的位置信息，同步logger将花费1.3到5倍的时间，异步logger将花费30到100倍的时间`\nhttps://logging.apache.org/log4j/2.x/manual/layouts.html#LocationInformation\n\n### 注意\nJDK要求最低11\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftruthbean%2Flogger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftruthbean%2Flogger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftruthbean%2Flogger/lists"}