Cannot determine local hostname
1. 问题与解答
报错:
o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
可能原因:
缺少一个logback.xml
2. logback日志文件介绍
2.1 logback结构与组成
logback.xml
文件是 Logback 的核心配置文件,其基本结构如下:
<configuration><!-- Appenders --><appender name="APPENDER_NAME" class="APPENDER_CLASS"><!-- Appender-specific configurations --></appender><!-- Loggers --><logger name="LOGGER_NAME" level="LOG_LEVEL"><appender-ref ref="APPENDER_NAME" /></logger><!-- Root Logger --><root level="LOG_LEVEL"><appender-ref ref="APPENDER_NAME" /></root>
</configuration>
- Appender
Appender 用于定义日志的输出目标。Logback 支持多种类型的 appender,如控制台、文件、数据库等。以下是一些常见的 appender 配置。如:
ConsoleAppender 向控制台输出日志。
FileAppender向文件输出日志。
RollingFileAppender向文件输出日志,并且支持日志文件的滚动(按时间或文件大小切分日志文件)。
- Logger
Logger 用于定义日志的记录器。可以为每个包或类单独定义 logger,也可以定义全局的 root logger。
Logger定义全局的 root logger。
<logger name="com.example" level="DEBUG"><appender-ref ref="CONSOLE" />
</logger>
Logger为特定包或类定义 logger。
<root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" />
</root>
2.2 配置样例
以下是ruoyi开源项目的日志配置例子。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 日志存放路径 --><property name="log.path" value="logs/ruoyi-auth" /><!-- 日志输出格式 --><property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${log.pattern}</pattern></encoder></appender><!-- 系统日志输出 --><appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/info.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>INFO</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/error.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><!-- 系统模块日志级别控制 --><logger name="com.ruoyi" level="info" /><!-- Spring日志级别控制 --><logger name="org.springframework" level="warn" /><root level="info"><appender-ref ref="console" /></root><!--系统操作日志--><root level="info"><appender-ref ref="file_info" /><appender-ref ref="file_error" /></root>
</configuration>