# spring-boot-log
**Repository Path**: tobybiao/spring-boot-log
## Basic Information
- **Project Name**: spring-boot-log
- **Description**: Spring Boot Logback 多环境配置
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-08-22
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Spring Boot Logback 多环境配置
假设有两个环境:本地开发环境和生产环境
项目目录结构:
```
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── springbootlog
│ │ ├── MessageController.java
│ │ └── SpringBootLogApplication.java
│ └── resources
│ ├── application-dev.properties
│ ├── application-prod.properties
│ ├── application.properties
│ ├── logback-spring.xml
│ ├── static
│ └── templates
└── test
└── java
└── com
└── example
└── springbootlog
└── SpringBootLogApplicationTests.java
14 directories, 10 files
```
application-dev.properties代表本地开发环境
application-prod.properties代表生产环境
## application-dev.properties
```
logging.level.root=DEBUG # 日志等级
debug=true
logging.path=log/dev # 存放日志文件路径
```
## application-prod.properties
```
logging.level.root=info
logging.path=log/prod
```
# logback-spring.xml
```
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %clr(%-5level) %logger{36} -%msg%n
UTF-8
${LOG_PATH}/data-debug.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n)
UTF-8
${LOG_PATH}/data-debug-%d{yyyy-MM-dd}.%i.log
2MB
30
DEBUG
ACCEPT
DENY
${LOG_PATH}/data-info.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
UTF-8
${LOG_PATH}/data-info-%d{yyyy-MM-dd}.%i.log
2MB
30
INFO
ACCEPT
DENY
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
UTF-8
${LOG_PATH}/data-warn.log
${LOG_PATH}/data-warn-%d{yyyy-MM-dd}.%i.log
2MB
30
WARN
ACCEPT
DENY
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
UTF-8
${LOG_PATH}/data-error.log
${LOG_PATH}/data-error-%d{yyyy-MM-dd}.%i.log
2MB
30
ERROR
```
`springProfile` 指定不同环境的日志配置
## application.properties
```
spring.output.ansi.enabled=ALWAYS # override the auto detection.
spring.profiles.active=prod
```
`spring.profiles.active` 指定当前使用环境配置
## 如果你的终端支持ANSI,颜色输出用于提高可读性 .设置 `spring.output.ansi.enabled` 覆盖默认行为
支持的值:
ALWAYS
> 启用颜色输出。
DETECT
> 检测是否有ANSI着色功能。
NEVER
> 禁用ANSI-colored输出。
``
使用颜色:`%clr(%5p)`
如例子中 `%clr(%-5level)` 将使控制台日志输出的等级名称带上默认的颜色
> 不同日志等级默认颜色
| Level | Color |
| ------- | ------ |
| `FATAL` | Red |
| `ERROR` | Red |
| `WARN` | Yellow |
| `INFO` | Green |
| `DEBUG` | Green |
| `TRACE` | Green |
> 参考
> https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html