nacos动态读取l⽇志配置
⼀。nacos的使⽤
启动nacos服务端,可以下载jar启动或者⾃⼰下载源码打包。浏览器访问,账号密码:nacos/nacos
nacos远程的l⽂件
spring:
application:
name: common-service
datasource:
driver-class-name: sql.cj.jdbc.Driver
url: jdbc:mysql://xxxxxx:3306/smartpower_xny?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC
username: xxx
password: xx@123456
type: com.zaxxer.hikari.HikariDataSource
hikari:
minimum-idle: 5
maximum-pool-size: 15
auto-commit: true
idle-timeout: 30000
pool-name: SmartpowerHikariCP
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
redis:
host: xxxx
port: 6379
database: 0
timeout: 1800000
# jpa:
# show-sql: false
# hibernate:
# ddl-auto: update
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
# database: mysql
server:
port: 9002
servlet:
context-path: /
management:
endpoints:
web:
exposure:
include: "*"
logging:
#file:
# name: logs/${spring.application.name}.log
config: ${spring.fig.server-addr}/nacos/v1/cs/configs?group=DEFAULT_GROUP&tenant=${spring.fig.namespace}&l level:
com.pository.dao: debug
mybatis-plus:
mapper-locations: classpath*:/mapper/*.xml
#实体扫描,多个package⽤逗号或者分号分隔
typeAliasesPackage: com.del
configuration:
#是否开启⾃动驼峰命名规则
map-underscore-to-camel-case: true
#MyBatis ⾃动映射策略,通过该配置可指定 MyBatis 是否并且如何来⾃动映射数据表字段与对象的属性,
auto-mapping-behavior: full
#打印SQL
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
#数据库配置
db-config:
springboot aop#主键 auto:⾃增
id-type: auto
#枚举类型当作基础类型
mapper:
enumAsSimpleType: true
pagehelper:
helper-dialect: mysql
#true时,如果pageNum<1会查询第⼀页,如果pageNum>pages会查询最后⼀页
#false时,如果pageNum<1或pageNum>pages会返回空数据
reasonable: false
support-methods-arguments: true
params: count=countsql
chint:
swagger:
enabled: true
title: common中⼼
description: common接⼝⽂档
version: 1.0
base-package: com.ller
nacos远程的 l⽂件
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 在yaml配置添加logging.path: 配置⽂件路径-->
<!-- 属性⽂件:在properties⽂件中到对应的配置项 -->
<springProperty scope="context" name="logging.path" source="logging.path" defaultValue="./logs" />
<!-- nacos名字不要改动,不然会造成启动报警告,Failed to rename context Context has been already given a name nacos
原因:项⽬框架集成logback 与nacos ⾃带的logback 冲突, nacos的logback 已经先于项⽬启动-->
<contextName>nacos</contextName>
<property name="FILE_NAME" value="common-data" />
<appender name="consoleLog" class="ch.ConsoleAppender">
<encoder class="ch.qos.der.PatternLayoutEncoder">
<!--格式化输出(配⾊):%d表⽰⽇期,%thread表⽰线程名,%-5level:级别从左显⽰5个字符宽度%msg:⽇志消息,%n是换⾏符-->
<pattern>%yellow(%d{yyyy-MM-dd HH:mm:ss}) %red([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %magenta(%msg) %n</pattern>
<!--user:%X{userId} :添加⽤户信息,⽅便链路追踪可以在aop拦截时MDC.put("userId", 1);-->
<!--<pattern>%yellow(%d{yyyy-MM-dd HH:mm:ss}) %red([%thread]) %highlight(%-5level) user:%X{userId} %cyan(%logger{50}) - %magenta(%msg) %n</pattern>-->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--根据⽇志级别分离⽇志,分别输出到不同的⽂件-->
<appender name="fileInfoLog" class="ch.olling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 设置拦截的对象为INFO级别⽇志 -->
<level>INFO</level>
<!-- 当匹配到了INFO级别时,启⽤该段配置 -->
<onMatch>ACCEPT</onMatch>
<!-- 没有匹配到INFO级别⽇志时,屏蔽该段配置 -->
<onMismatch>DENY</onMismatch>
</filter>
<encoder class="ch.qos.der.PatternLayoutEncoder">
<pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n </pattern>
<!--user:%X{userId} :添加⽤户信息,⽅便链路追踪可以在aop拦截时MDC.put("userId", 1);-->
<!--<pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level user:%X{userId} %logger{50} - %msg%n </pattern>-->
<charset>UTF-8</charset>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.olling.SizeAndTimeBasedRollingPolicy">
<!--按时间保存⽇志修改格式可以按⼩时、按天、⽉来保存-->
<fileNamePattern>${logging.path}/${FILE_NAME}.info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--单个⽂件⼤⼩注意:除了 %d 之外还有 %i。这两个占位符都是强制要求的。在当前时间还没有到达周期轮转之前,⽇志⽂件达到了 maxFileSize 指定的⼤⼩,会进⾏归档,递增索引从 0 开始--> <maxFileSize>10MB</maxFileSize>
<!--保存时长-->
<MaxHistory>90</MaxHistory>
<!--总⽂件⼤⼩,使⽤此属性必须配置MaxHistory,且MaxHistory第⼀优先级,totalSizeCap第⼆优先级-->
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<!--<rollingPolicy class="ch.olling.TimeBasedRollingPolicy">
<!&ndash;按时间保存⽇志修改格式可以按⼩时、按天、⽉来保存–>
<fileNamePattern>${logging.path}/common-service.info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!&ndash;保存时长–>
<MaxHistory>90</MaxHistory>
<!–⽂件⼤⼩–>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>-->
</appender>
<appender name="fileWarnLog" class="ch.olling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 设置拦截的对象为INFO级别⽇志 -->
<level>WARN</level>
<!-- 当匹配到了WARN级别时,启⽤该段配置 -->
<onMatch>ACCEPT</onMatch>
<!-- 没有匹配到WARN级别⽇志时,屏蔽该段配置 -->
<onMismatch>DENY</onMismatch>
</filter>
<encoder class="ch.qos.der.PatternLayoutEncoder">
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.olling.SizeAndTimeBasedRollingPolicy">
<!--按时间保存⽇志修改格式可以按⼩时、按天、⽉来保存-->
<fileNamePattern>${logging.path}/${FILE_NAME}.warn.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--单个⽂件⼤⼩注意:除了 %d 之外还有 %i。这两个占位符都是强制要求的。在当前时间还没有到达周期轮转之前,⽇志⽂件达到了 maxFileSize 指定的⼤⼩,会进⾏归档,递增索引从 0 开始--> <maxFileSize>10MB</maxFileSize>
<!--保存时长-->
<MaxHistory>90</MaxHistory>
<!--总⽂件⼤⼩,使⽤此属性必须配置MaxHistory,且MaxHistory第⼀优先级,totalSizeCap第⼆优先级-->
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="fileErrorLog" class="ch.olling.RollingFileAppender">
<!-- 基于给定的临界值来过滤事件。如果事件的级别等于或⾼于给定的临界值,将抛弃 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.olling.SizeAndTimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>${logging.path}/${FILE_NAME}.error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--单个⽂件⼤⼩注意:除了 %d 之外还有 %i。这两个占位符都是强制要求的。在当前时间还没有到达周期轮转之前,⽇志⽂件达到了 maxFileSize 指定的⼤⼩,会进⾏归档,递增索引从 0 开始--> <maxFileSize>10MB</maxFileSize>
<!--保存时长-->
<MaxHistory>90</MaxHistory>
<!--总⽂件⼤⼩,使⽤此属性必须配置MaxHistory,且MaxHistory第⼀优先级,totalSizeCap第⼆优先级-->
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>
<!--过滤器的配置在配置级别的基础上过滤,即root标签的配置级别。本例中,是对⼤于等于info级别的⽇志过滤-->
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileWarnLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>
本地项⽬中的bootstrap.yaml⽂件
server:
port: 9002
spring:
application:
name: common-service
main:
allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
cloud:
nacos:
discovery:
server-addr: ${NACOS_HOST:10.121.9.30}:${NACOS_PORT:8848}
group: DEV_GROUP
namespace: ac38fa10-529c-43fc-967e-9e44860e19ba
config:
server-addr: ${NACOS_HOST:10.121.9.30}:${NACOS_PORT:8848}
namespace: ac38fa10-529c-43fc-967e-9e44860e19ba
group: DEV_GROUP
file-extension: yml
prefix: ${spring.application.name}
#多个配置⽂件可以⽤以下⽅式
# ext-config[0]:
# group: DEV_GROUP
# data-id: l
# refresh: true
# ext-config[1]:
# group: DEV_GROUP
# data-id: ${spring.application.name}-l
# refresh: true
profiles:
active: dev
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论