# logback-nospring-demo
**Repository Path**: yangdechao_admin/logback-nospring-demo
## Basic Information
- **Project Name**: logback-nospring-demo
- **Description**: 非Spring项目应用对接日志规范demon
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-10-11
- **Last Updated**: 2022-10-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 日志接入到管控平台用户指南
> 日志管控平台生产环境地址:http://10.18.111.21:8082/login
>
> 用户名:能效平台用户名
>
> 密码 :初始密码为:Cosco@2022
## 一、关于产品
### 1.1 产品简介
- 对公司内Java项目日志格式进行规范,统一收集。包括用户权限管理,多环境日志管理,通过日志管控平台查看日志。
- 简化日志对接方式,通过引入公司csleasing-common-log SKD工具统一格式输出日志
- 该SKD中已经将SkyWalking中相关链路TID进行了关联,日志已经和SkyWalking进行了打通
- 日志中添加了应用名称,端口号,IP地址,方便用户在多环境,多机器下精确查找日志。
### 1.2 日志说明
#### 1.2.1 非JSON格式日志输出(开发环境)
如果在**开发环境**可以将logback-spring.xml中日志通过如下方式配置:
```XML
```
说明:console-logback.xml中定义了将日志通过非JSON输出,日志输出格式输出格式如下:
```tex
[2022-09-20T10:50:15.623Z] [TID:N/A] elk-web [localhost:8082] DEBUG [ , , ] cn.com.coscoshipping.elk.dbone.mapper.JobMapper.selectJobAll.debug:137 - ==> Preparing: select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark from sys_job
[2022-09-20T10:50:15.623Z] [TID:N/A] elk-web [localhost:8082] DEBUG [ , , ] cn.com.coscoshipping.elk.dbone.mapper.JobMapper.selectJobAll.debug:137 - ==> Parameters:
[2022-09-20T10:50:15.627Z] [TID:N/A] elk-web [localhost:8082] DEBUG [ , , ] cn.com.coscoshipping.elk.dbone.mapper.JobMapper.selectJobAll.debug:137 - <== Total: 3
[2022-09-20T10:50:17.185Z] [TID:N/A] elk-web [localhost:8082] WARN [ , , ] org.thymeleaf.templatemode.TemplateMode.parse:150 - [THYMELEAF][restartedMain] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
[2022-09-20T10:50:17.206Z] [TID:N/A] elk-web [localhost:8082] INFO [ , , ] cn.com.csleasing.commons.log.env.config.EnvironmentConfig.restLocalLogEnvironmentAndConfigEndpoint:33 - init LocalLogEnvAndConfigEndpoint
[2022-09-20T10:50:17.209Z] [TID:N/A] elk-web [localhost:8082] INFO [ , , ] cn.com.csleasing.commons.log.env.config.EnvironmentConfig.restEnvLoggerTask:40 - init EnvLoggerTask
```
#### 1.2.2 JSON格式日志输出(生产环境)
如果在生产**环境**可以将logback-spring.xml中日志通过如下方式配置:
```XML
```
说明:stdout-logback.xml中定义了将日志通过JSON输出,日志输出格式如下:
```JSON
{"logTimestamp":"2022-09-20T11:00:23.909Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.apache.shiro.cache.ehcache.EhCacheManager:169","thread":"restartedMain","msg":"Using existing EHCache named [sys-dict]","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:23.909Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.apache.shiro.cache.ehcache.EhCacheManager:169","thread":"restartedMain","msg":"Using existing EHCache named [sys-dict]","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:23.909Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.apache.shiro.cache.ehcache.EhCacheManager:169","thread":"restartedMain","msg":"Using existing EHCache named [sys-dict]","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:24.512Z","logLevel":"WARN","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.springframework.data.elasticsearch.support.VersionInfo:75","thread":"restartedMain","msg":"Version mismatch in between Elasticsearch Client and Cluster: 7.12.1 - 7.8.0","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:24.919Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.quartz.impl.StdSchedulerFactory:1220","thread":"restartedMain","msg":"Using default implementation for ThreadExecutor","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:24.939Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.quartz.core.SchedulerSignalerImpl:61","thread":"restartedMain","msg":"Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:24.939Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.quartz.core.QuartzScheduler:229","thread":"restartedMain","msg":"Quartz Scheduler v.2.3.2 created.","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
{"logTimestamp":"2022-09-20T11:00:24.940Z","logLevel":"INFO","tid":"TID:N/A","biz":"","traceId":"","spanId":"","parentSpanId":"","className":"org.quartz.simpl.RAMJobStore:155","thread":"restartedMain","msg":"RAMJobStore initialized.","stackTrace":"","serviceName":"elk-web","system":"system_IS_UNDEFINED","ip":"10.18.111.21","port":"8082"}
```
## 二、开始使用
### 3.1 接入流程
> ### 3.1.1 引入依赖
>
> - 定义依赖版本
>
> ```XML
>
> 1.0.0-SNAPSHOT
>
> ```
>
> - 引入依赖包
>
> 根据需要添加依赖包
>
> ```XML
>
>
> cn.com.csleasing
> csleasing-common-log-base
> ${csleasing-log-sdk.version}
>
> ```
>
> ### 3.1.2 仓库地址
>
> 下载上述依赖包,需要在POM文件中配置如下:
>
> ```XML
>
> common
> Nexus aliyun
> http://nexus.csleasing.com.cn/repository/maven-snapshots/
>
> ```
>
> ### 3.1.3 setting.xml配置
>
> 如果csleasing-common-log-base依赖包无法下载,请配置如果maven镜像地址进行下载:
>
> ```XML
>
>
> alimaven
> aliyun maven
> http://maven.aliyun.com/nexus/content/groups/public/
> central
>
>
> my_snapshots
> central
> my maven
> http://nexus.csleasing.com.cn/repository/maven-snapshots/
>
>
> ```
>
> ### 3.1.4 引入logback-spring.xml文件
>
> 如果是springboot应用,请在resources目录下创建logback-spring.xml配置文件
>
> ```XML
>
>
>
>
>
>
>
>
>
> ```
### 3.2 示例工程
https://gitee.com/yangdechao_admin/logback-demo.git
https://gitee.com/yangdechao_admin/clmp-register.git
## 三、多环境日志配置
在实际项目中,需要面对不同的运行环境,比如开发环境、测试环境、生产环境等,每个运行环境的数据库、Redis服务器等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错概率大。
针对不同环境输出日志,我们可以通过配置方案来解决多环境的配置问题。
- logback-dev.xml为开发环境配置文件,包含项目所需的单独配置。
- logback-test.xml为测试环境配置文件。
- logback-prod.xml为生产环境配置文件。
在sringboot项目的yml文件中可以通过如下配置来指定不同环境的logback.
```YAML
logging:
config: classpath:logback-prod.xml
```
注意: **建议生产环境将日志通过****JSON****格式输出,开发环境将日志通过非JSON格式输出。**