BunnyMaster / bunny-admin-server

后台管理-后端
3 stars 1 forks source link

docker启动后系统日志和错误日志在哪里? #1

Open cyj153 opened 18 hours ago

cyj153 commented 18 hours ago

docker启动后系统日志和错误日志在哪里?

BunnyMaster commented 16 hours ago

在后端日志文件中,使用了logback.xml进行格式化。然而,使用logback.xml后,配置文件中指定的日志输出文件位置可能会失效。如果项目是通过Docker部署的,想在宿主机查看日志文件需要进行文件映射。

使用SpringBoot

在配置文件中,指定名称和目录路径即可,之后使用docker映射就可以在宿主机看到日志了

如果想要用自带需要删除logback.xml文件

logging:
  level:
    cn.bunny.service.mapper: warn
    cn.bunny.service.controller: warn
    cn.bunny.service.service: warn
    root: warn
  pattern:
    dateformat: HH:mm:ss:SSS
  file:
    path: "logs/${spring.application.name}"
    name: "logs/${spring.application.name}"

使用logback.xml

指定目录的位置<file>D:/logs/${datetime}/auth-server.log</file>根据你需要的指定

<!-- 格式化 年-月-日 输出 -->
<timestamp key="datetime" datePattern="yyyy-MM-dd"/>

<appender name="STOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>
            %cyan([%thread]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)- %blue(%msg%n)
        </pattern>
    </encoder>
</appender>

<!-- 文件日志 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>/www/root/server/logs/${datetime}/auth-server.log</file>
    <append>true</append>
    <encoder>
        <pattern>%date{yyyy-MM-dd HH:mm:ss} %-5level %logger{100} %method %line %msg%n</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>

如果按照上面搭建,日志文件会在/www/root/server/logs下,即使使Windows系统也会存在,如果docker使用的是文件映射,那么日志文件会在容器相对应的位置

如果开发环境或者其他环境也需要日志,可以根据当前环境进行选择<springProfile name="prod">

xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" debug="false"
               xmlns="http://ch.qos.logback/xml/ns/logback"
               xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback
                https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd">

    <!-- 格式化 年-月-日 输出 -->
    <timestamp key="datetime" datePattern="yyyy-MM-dd"/>

    <appender name="STOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %cyan([%thread]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)- %blue(%msg%n)
            </pattern>
        </encoder>
    </appender>

    <!-- 文件日志 -->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>/www/root/server/logs/${datetime}/auth-server.log</file>
        <append>true</append>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss} %-5level %logger{100} %method %line %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 让SpringBoot内部日志ERROR级别 减少日志输出 additivity:false 禁止重复打印日志 -->
    <logger name="org.springframework" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 让mybatis整合包日志ERROR 减少日志输出 -->
    <logger name="org.mybatis" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 让ibatis 日志ERROR 减少日志输出 -->
    <logger name="org.apache.ibatis" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 让 tomcat包打印日志 日志ERROR 减少日志输出 -->
    <logger name="org.apache" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <logger name="cn.bunny" level="DEBUG" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <logger name="com.baomidou" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 根日志记录器:INFO级别  -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>
cyj153 commented 14 hours ago

日志文件是生成了,启动后也没有内容写入,这个日志不区分info和error吗

BunnyMaster commented 13 hours ago

试下这个吧,我修该了一下,我电脑上现在是可以生成的 image

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <contextName>logback</contextName>

    <!-- 格式化 年-月-日 输出 -->
    <timestamp key="datetime" datePattern="yyyy-MM-dd"/>

    <!--编码-->
    <property name="ENCODING" value="UTF-8"/>

    <!-- 控制台日志 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 临界值过滤器 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <encoder>
            <pattern>%cyan([%thread]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)- %blue(%msg%n)</pattern>
            <charset>${ENCODING}</charset>
        </encoder>
    </appender>

    <!-- 文件日志 -->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>/www/root/server/logs/${datetime}/auth-server.log</file>
        <append>true</append>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss} [%-5level] %thread %file:%line %logger %msg%n</pattern>
            <charset>${ENCODING}</charset>
        </encoder>
    </appender>

    <!-- 让SpringBoot内部日志ERROR级别 减少日志输出 -->
    <logger name="org.springframework" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 让mybatis整合包日志ERROR 减少日志输出 -->
    <logger name="org.mybatis" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 让ibatis 日志ERROR 减少日志输出 -->
    <logger name="org.apache.ibatis" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 让 tomcat包打印日志 日志ERROR 减少日志输出 -->
    <logger name="org.apache" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 我们自己开发的程序为DEBUG -->
    <logger name="cn.bunny" level="DEBUG" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <logger name="com.baomidou" level="ERROR" additivity="false">
        <appender-ref ref="STOUT"/>
    </logger>

    <!-- 根日志记录器:INFO级别  -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

</configuration>
BunnyMaster commented 13 hours ago

日志是区分info之类的,调整info是在当前环境的配置文件中,日志没有输出试下将上面文件替换下

cyj153 commented 12 hours ago

日志可以了,我的区分是info在一个文件中,error在另一个文件中