KouShenhai / KCloud-Platform-IoT

KCloud-Platform-IoT(阻塞式)(老寇IoT云平台)是一个企业级微服务架构的IoT云平台。采用DDD(领域驱动设计)思想,基于Spring Boot 3.4.0、Spring Cloud 2024.0.0、Spring Cloud Alibaba 2023.0.1.3 最新版本开发的云服务多租户IoT平台,家人们,点个star!拜托啦~
https://koushenhai.github.io/KCloud-Platform-IoT
Apache License 2.0
472 stars 120 forks source link

Dev #2908

Closed KouShenhai closed 1 day ago

KouShenhai commented 1 day ago

Summary by Sourcery

通过修改JsonLayout设置和将日志文件扩展名更改为.json,更新日志配置以改善JSON日志结构并提高服务间的一致性。

增强功能:

Original summary in English ## Summary by Sourcery Update logging configurations to improve JSON logging structure and consistency across services by modifying JsonLayout settings and changing log file extensions to .json. Enhancements: - Enhance logging configuration by updating JsonLayout settings across multiple services to include additional properties such as stacktrace and objectMessageAsJsonObject. - Change log file extensions from .log to .json for better structured logging and consistency across services.

Summary by CodeRabbit

coderabbitai[bot] commented 1 day ago

[!CAUTION]

Review failed

The pull request is closed.

Walkthrough

The changes in this pull request primarily involve updates to the logging configuration files across various services in the laokou project. The modifications include enhancements to the JsonLayout settings for console and file appenders, shifting log file formats from .log to .json, and adjusting attributes for improved logging detail and structure. These updates aim to standardize the logging output across different environments (development, production, test) and enhance the overall logging capabilities.

Changes

File Path Change Summary
laokou-cloud/laokou-gateway/src/main/resources/log4j2-*.xml Updated JsonLayout configurations for console and file appenders to include additional attributes and changed file extensions from .log to .json.
laokou-cloud/laokou-monitor/src/main/resources/log4j2-*.xml Similar updates to JsonLayout configurations, including changes in file naming conventions and additional attributes for enhanced logging detail.
laokou-sample/laokou-sample-/src/main/resources/log4j2-.xml Changes include updates to JsonLayout configurations, file extensions updated from .log to .json, and additional attributes for structured logging in both console and file appenders.
laokou-service/laokou-/laokou--start/src/main/resources/log4j2-*.xml Modifications to JsonLayout for console and file appenders, with a focus on changing file extensions to .json, updating attributes for improved logging detail, and maintaining existing logging structure.
laokou-service/laokou-logstash/laokou-logstash-/src/main/resources/log4j2-.xml Adjustments to JsonLayout configurations for both console and file appenders, including changes in file naming conventions to .json and updates to attributes for enhanced logging.
laokou-service/laokou-report/laokou-report-start/src/main/resources/log4j2-*.xml Significant updates to JsonLayout configurations, file extensions changed to .json, and additional attributes added for both console and file appenders, enhancing the structured logging output.
laokou-service/laokou-auth/laokou-auth-start/src/main/resources/log4j2-*.xml Similar changes to JsonLayout configurations with a focus on file extension updates and additional attributes for improved logging detail.
laokou-service/laokou-generator/laokou-generator-start/src/main/resources/log4j2-*.xml Updates to JsonLayout configurations, including file extension changes from .log to .json and enhancements in logging detail through additional attributes.
laokou-service/laokou-iot/laokou-iot-start/src/main/resources/log4j2-*.xml Modifications to logging configurations reflecting a shift in file format from .log to .json and updates to JsonLayout attributes for enhanced detail.
laokou-service/laokou-logstash/laokou-logstash-app/src/main/java/org/laokou/logstash/handler/TraceHandler.java Addition of a new field stacktrace in the TraceIndex class to store stack trace information, enhancing the data structure for logging trace information.

Poem

In the fields of code we play,
With logs that dance in bright array.
From .log to .json, we cheer,
More details now, the path is clear!
Attributes added, structure refined,
In the world of logs, new treasures we find! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
sourcery-ai[bot] commented 1 day ago

审核者指南 by Sourcery

此 PR 在整个应用程序中实现了全面的日志改进,重点是增强的 JSON 日志配置和堆栈跟踪处理。更改将日志输出格式标准化为 JSON,并添加了更好的错误跟踪功能。

JsonLayout 修改的类图

classDiagram
    class JsonLayout {
        +toSerializable(LogEvent event, Writer writer)
        +getFieldsMap(LogEvent event) Map<String, String>
        +getStackTraceAsString(Throwable throwable) String
    }
    note for JsonLayout "添加了方法 getStackTraceAsString 以处理堆栈跟踪转换为字符串。"

TraceIndex 修改的类图

classDiagram
    class TraceIndex {
        +String message
        +String stacktrace
    }
    note for TraceIndex "添加了堆栈跟踪字段以增强错误跟踪。"

文件级更改

更改 详情 文件
增强了所有服务的 JSON 日志配置
  • 添加了新的 JSON 布局属性,包括 complete、properties、locationInfo、includeStacktrace、stacktraceAsString 和 objectMessageAsJsonObject
  • 将日志文件扩展名从 .log 更改为 .json 以反映 JSON 内容
  • 在所有环境(开发、测试、生产)中标准化 JSON 布局配置
laokou-cloud/laokou-gateway/src/main/resources/log4j2-prod.xml
laokou-service/laokou-admin/laokou-admin-start/src/main/resources/log4j2-prod.xml
laokou-service/laokou-auth/laokou-auth-start/src/main/resources/log4j2-prod.xml
laokou-service/laokou-generator/laokou-generator-start/src/main/resources/log4j2-prod.xml
laokou-service/laokou-iot/laokou-iot-start/src/main/resources/log4j2-prod.xml
laokou-service/laokou-report/laokou-report-start/src/main/resources/log4j2-prod.xml
改进了 JSON 日志中的堆栈跟踪处理
  • 在日志输出中添加了堆栈跟踪字段
  • 实现了堆栈跟踪转换为字符串格式
  • 在 Elasticsearch 的跟踪索引中添加了堆栈跟踪字段
laokou-common/laokou-common-log4j2/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java
laokou-service/laokou-logstash/laokou-logstash-app/src/main/java/org/laokou/logstash/handler/TraceHandler.java
代码格式改进
  • 改进了地址属性设置中的字符串格式可读性
  • 将长行拆分为多行以提高可读性
laokou-sample/laokou-sample-shardingsphere/src/main/java/org/laokou/start/ShardingTestApp.java
laokou-sample/laokou-sample-tcp/src/main/java/org/laokou/start/TcpTestApp.java

提示和命令 #### 与 Sourcery 互动 - **触发新审核:** 在拉取请求上评论 `@sourcery-ai review`。 - **继续讨论:** 直接回复 Sourcery 的审核评论。 - **从审核评论生成 GitHub 问题:** 通过回复审核评论请求 Sourcery 创建一个问题。 - **生成拉取请求标题:** 在拉取请求标题的任何地方写 `@sourcery-ai` 以随时生成标题。 - **生成拉取请求摘要:** 在拉取请求正文的任何地方写 `@sourcery-ai summary` 以随时生成 PR 摘要。您也可以使用此命令指定摘要应插入的位置。 #### 自定义您的体验 访问您的[仪表板](https://app.sourcery.ai)以: - 启用或禁用审核功能,例如 Sourcery 生成的拉取请求摘要、审核者指南等。 - 更改审核语言。 - 添加、删除或编辑自定义审核说明。 - 调整其他审核设置。 #### 获取帮助 - [联系我们的支持团队](mailto:support@sourcery.ai)以获取问题或反馈。 - 访问我们的[文档](https://docs.sourcery.ai)以获取详细指南和信息。 - 通过关注我们在 [X/Twitter](https://x.com/SourceryAI)、[LinkedIn](https://www.linkedin.com/company/sourcery-ai/) 或 [GitHub](https://github.com/sourcery-ai) 上的 Sourcery 团队保持联系。
Original review guide in English ## Reviewer's Guide by Sourcery This PR implements comprehensive logging improvements across the application, focusing on enhanced JSON logging configuration and stacktrace handling. The changes standardize the log output format to JSON and add better error tracking capabilities. #### Class diagram for JsonLayout modifications ```mermaid classDiagram class JsonLayout { +toSerializable(LogEvent event, Writer writer) +getFieldsMap(LogEvent event) Map +getStackTraceAsString(Throwable throwable) String } note for JsonLayout "Added method getStackTraceAsString to handle stacktrace conversion to string." ``` #### Class diagram for TraceIndex modifications ```mermaid classDiagram class TraceIndex { +String message +String stacktrace } note for TraceIndex "Added stacktrace field to enhance error tracking." ``` ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Enhanced JSON logging configuration across all services |
  • Added new JSON layout properties including complete, properties, locationInfo, includeStacktrace, stacktraceAsString, and objectMessageAsJsonObject
  • Changed log file extensions from .log to .json to reflect JSON content
  • Standardized JSON layout configuration across all environments (dev, test, prod)
| `laokou-cloud/laokou-gateway/src/main/resources/log4j2-prod.xml`
`laokou-service/laokou-admin/laokou-admin-start/src/main/resources/log4j2-prod.xml`
`laokou-service/laokou-auth/laokou-auth-start/src/main/resources/log4j2-prod.xml`
`laokou-service/laokou-generator/laokou-generator-start/src/main/resources/log4j2-prod.xml`
`laokou-service/laokou-iot/laokou-iot-start/src/main/resources/log4j2-prod.xml`
`laokou-service/laokou-report/laokou-report-start/src/main/resources/log4j2-prod.xml` | | Improved stacktrace handling in JSON logging |
  • Added stacktrace field to log output
  • Implemented stacktrace conversion to string format
  • Added stacktrace field to trace index for Elasticsearch
| `laokou-common/laokou-common-log4j2/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java`
`laokou-service/laokou-logstash/laokou-logstash-app/src/main/java/org/laokou/logstash/handler/TraceHandler.java` | | Code formatting improvements |
  • Improved string formatting readability in address property setting
  • Split long lines into multiple lines for better readability
| `laokou-sample/laokou-sample-shardingsphere/src/main/java/org/laokou/start/ShardingTestApp.java`
`laokou-sample/laokou-sample-tcp/src/main/java/org/laokou/start/TcpTestApp.java` | ---
Tips and commands #### Interacting with Sourcery - **Trigger a new review:** Comment `@sourcery-ai review` on the pull request. - **Continue discussions:** Reply directly to Sourcery's review comments. - **Generate a GitHub issue from a review comment:** Ask Sourcery to create an issue from a review comment by replying to it. - **Generate a pull request title:** Write `@sourcery-ai` anywhere in the pull request title to generate a title at any time. - **Generate a pull request summary:** Write `@sourcery-ai summary` anywhere in the pull request body to generate a PR summary at any time. You can also use this command to specify where the summary should be inserted. #### Customizing Your Experience Access your [dashboard](https://app.sourcery.ai) to: - Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others. - Change the review language. - Add, remove or edit custom review instructions. - Adjust other review settings. #### Getting Help - [Contact our support team](mailto:support@sourcery.ai) for questions or feedback. - Visit our [documentation](https://docs.sourcery.ai) for detailed guides and information. - Keep in touch with the Sourcery team by following us on [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) or [GitHub](https://github.com/sourcery-ai).
sonarcloud[bot] commented 1 day ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

codecov[bot] commented 1 day ago

Codecov Report

Attention: Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.

Project coverage is 17.06%. Comparing base (93dddb1) to head (c9f0e41). Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
...rc/main/java/org/laokou/start/ShardingTestApp.java 0.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #2908 +/- ## ============================================ - Coverage 17.08% 17.06% -0.02% Complexity 72 72 ============================================ Files 89 89 Lines 1405 1406 +1 Branches 108 108 ============================================ Hits 240 240 - Misses 1136 1137 +1 Partials 29 29 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.