# 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格式输出。**