☰
Current Page
Main Menu
Home
Home
Editing
logback日志配置
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
# logback日志配置 ## 1. application-dev.properties 配置文件添加logback配置 ```properties logging.config=classpath:logback-spring.xml ``` ## 2. 复制 logback-spring.xml 到 /src/main/resources目录 ## 3. 输出SQL日志 - 修改RelationDBAccessor的日志级别为DEBUG,默认不输出SQL,生产环境不建议输出SQL. - 分表ShardingSphere-SQL日志控制,INFO为打开,ERROR为关闭 - 如果不想输出到控制台:去掉 `<appender-ref ref="STDOUT" />` ```xml <logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="DEBUG" additivity="false"> <appender-ref ref="STDOUT" /> <appender-ref ref="SQL_LOG" /> </logger> <!-- 分表SQL日志控制,INFO为打开,ERROR为关闭--> <logger name="ShardingSphere-SQL" level="INFO" additivity="false"> <appender-ref ref="STDOUT" /> <appender-ref ref="SQL_LOG" /> </logger> ``` ## 4. logback-spring.xml 配置 ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true"> <property name="LOG_BASE" value="logs"/> <!--控制台日志 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> </appender> <!--普通日志 --> <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> <file>${LOG_BASE}/root.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_BASE}/root.%d{yyyyMMdd}.%i.log</fileNamePattern> <maxFileSize>128MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>30GB</totalSizeCap> </rollingPolicy> </appender> <!--错误日志 --> <appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> <file>${LOG_BASE}/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_BASE}/error.%d{yyyyMMdd}.%i.log </fileNamePattern> <!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 --> <maxFileSize>128MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>30GB</totalSizeCap> </rollingPolicy> </appender> <!--SQL日志 --> <appender name="SQL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> <file>${LOG_BASE}/sqllogfile.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_BASE}/sqllogfile.%d{yyyyMMdd}.%i.log</fileNamePattern> <maxFileSize>128MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>30GB</totalSizeCap> </rollingPolicy> </appender> <!-- SQL异步输出 --> <appender name="SQL_ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>512</queueSize> <appender-ref ref="SQL_LOG"/> </appender> <!-- root定义全局日志级别为INFO --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="LOG_FILE"/> <appender-ref ref="ERROR_LOG"/> </root> <!-- logger:可以为特定包或类设置不同的日志级别 --> <logger name="org.hibernate" level="ERROR"/> <logger name="io.netty" level="ERROR"/> <logger name="org.springframework" level="WARN"/> <logger name="org.redisson" level="ERROR"/> <logger name="com.alibaba.druid.sql.SQLUtils" level="ERROR"/> <!-- 耗时统计 --> <logger name="com.sie.snest.engine.utils.TimeCounter" level="DEBUG"/> <!-- SQL日志输出到控制台和SQL_LOG文件,additivity=false表示不向root传递打印信息. DEBUG为打开,INFO为关闭 --> <logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="INFO" additivity="false"> <appender-ref ref="STDOUT"/> <appender-ref ref="SQL_LOG"/> </logger> <!-- 分表SQL日志控制.INFO为打开;ERROR为关闭 --> <logger name="ShardingSphere-SQL" level="ERROR" additivity="false"> <appender-ref ref="STDOUT"/> <appender-ref ref="SQL_LOG"/> </logger> </configuration> ``` ## 5.生产环境配置SQL异步输出到文件 如果要添加自定义类的日志级别,追加到logger到 logback-spring.xml ```xml <logger name="com.sie.snest.engine.utils.TimeCounter" level="DEBUG"/> <logger name="org.springframework" level="WARN"/> ``` 如果不想输出SQL到控制台,去掉 `<appender-ref ref="STDOUT" />` ``` <!-- SQL日志输出到控制台和SQL_LOG文件,DEBUG是开启SQL日志,INFO:为关闭 --> <logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="DEBUG" additivity="false"> <appender-ref ref="SQL_ASYNC_LOG" /> </logger> <!-- 分表SQL日志控制.INFO为打开;ERROR为关闭 --> <logger name="ShardingSphere-SQL" level="INFO" additivity="false"> <appender-ref ref="SQL_ASYNC_LOG" /> </logger> ``` logback-spring.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true"> <property name="LOG_BASE" value="logs"/> <!--控制台日志 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> </appender> <!--普通日志 --> <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> <file>${LOG_BASE}/root.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_BASE}/root.%d{yyyyMMdd}.%i.log</fileNamePattern> <maxFileSize>128MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>30GB</totalSizeCap> </rollingPolicy> </appender> <!--错误日志 --> <appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> <file>${LOG_BASE}/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_BASE}/error.%d{yyyyMMdd}.%i.log </fileNamePattern> <!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 --> <maxFileSize>128MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>30GB</totalSizeCap> </rollingPolicy> </appender> <!--SQL日志 --> <appender name="SQL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </encoder> <file>${LOG_BASE}/sqllogfile.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_BASE}/sqllogfile.%d{yyyyMMdd}.%i.log</fileNamePattern> <maxFileSize>128MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>30GB</totalSizeCap> </rollingPolicy> </appender> <!-- SQL异步输出 --> <appender name="SQL_ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>512</queueSize> <appender-ref ref="SQL_LOG"/> </appender> <!-- root定义全局日志级别为INFO --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="LOG_FILE"/> <appender-ref ref="ERROR_LOG"/> </root> <!-- logger:可以为特定包或类设置不同的日志级别 --> <logger name="org.hibernate" level="ERROR"/> <logger name="io.netty" level="ERROR"/> <logger name="org.springframework" level="WARN"/> <logger name="org.redisson" level="ERROR"/> <logger name="com.alibaba.druid.sql.SQLUtils" level="ERROR"/> <logger name="tech.powerjob" level="WARN"/> <!-- 耗时统计 --> <logger name="com.sie.snest.engine.utils.TimeCounter" level="DEBUG"/> <!-- SQL日志输出到控制台和SQL_LOG文件,additivity=false表示不向root传递打印信息. DEBUG为打开,INFO为关闭 --> <logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="DEBUG" additivity="false"> <appender-ref ref="SQL_ASYNC_LOG"/> </logger> <!-- 分表SQL日志控制.INFO为打开;ERROR为关闭 --> <logger name="ShardingSphere-SQL" level="INFO" additivity="false"> <appender-ref ref="SQL_ASYNC_LOG"/> </logger> </configuration> ```
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel