docker-compose部署springboot项目,logback-spring日志文件生成并落地

1 篇文章 0 订阅
1 篇文章 0 订阅

1:修改applicatipon.xml

logging:
  config: classpath:logback-spring.xml

2:修改pom配置文件

<!--生成日志-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.21</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.7</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.7</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
            <scope>compile</scope>
        </dependency>
                    <!--日志结束-->

此处很容易引起log4j的jar包冲突,在加了排除项之后,可以正常生成,亲测有效

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <artifactId>logback-classic</artifactId>
                    <groupId>ch.qos.logback</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>

3:编辑logback-spring.xml

<?xml version='1.0' encoding='UTF-8'?>
<!--日志配置-->
<configuration>
	<!--直接定义属性-->
	<property name="logFile" value="/usr/local/data/produce/produce"/>
	<property name="maxFileSize" value="30MB"/>

	<!--控制台日志-->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d [%thread] %-5level %logger{50} -[%file:%line]- %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!--滚动文件日志-->
	<appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--日志文件存储路径,来自property设置-->
		<file>${logFile}.log</file>
		<encoder>
			<pattern>%d [%thread] %-5level -[%file:%line]- %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<!--每天生成一个新的活动日志文件,旧的日志归档,后缀名为2019.08.12这种格式-->
			<fileNamePattern>${logFile}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<!--活动日志文件最大值,超过这个值将产生新日志文件-->
			<maxFileSize>${maxFileSize}</maxFileSize>
			<!--只保留最近30天的日志-->
			<maxHistory>30</maxHistory>
			<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
	</appender>
	<!--创建一个具体的日志输出-->
	<logger name="com.*" level="info" additivity="true">
		<!--可以有多个appender-ref,即将日志记录到不同的位置-->
		<appender-ref ref="STDOUT"/>
		<appender-ref ref="fileLog"/>
	</logger>

	<!--基础的日志输出-->
	<root level="info">
	</root>
</configuration>

4:修改docker-compose.yml,添加日志挂载目录

volumes:
        - "/etc/localtime:/etc/localtime"
        - "/usr/local/data:/usr/local/data"

5:启动应用,查看日志文件

docker-compose up -d

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker Compose部署Spring Boot项目和MySQL数据库,并创建表结构,可以按照以下步骤进行操作: 1. 首先,确保已经在你的Spring Boot项目中定义了数据库表结构。这可以通过使用JPA或者手动创建SQL脚本来完成。 2. 在你的Docker Compose文件中,定义两个服务:一个Spring Boot应用程序,另一个是MySQL数据库。以下是一个简单的示例: ```yaml version: '3' services: app: build: context: . dockerfile: Dockerfile ports: - 8080:8080 depends_on: - db db: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: your_database_name MYSQL_USER: your_username MYSQL_PASSWORD: your_password volumes: - ./data:/var/lib/mysql ``` 在上面的示例中,`app`服务是你的Spring Boot应用程序,`db`服务是MySQL数据库。你可以根据自己的需求进行调整。 3. 确保在你的Spring Boot应用程序中的数据库配置文件(如`application.properties`或`application.yml`)中,将数据库连接信息配置为以下内容: ```properties spring.datasource.url=jdbc:mysql://db:3306/your_database_name spring.datasource.username=your_username spring.datasource.password=your_password ``` 这里的`db`是Docker Compose中定义的MySQL服务的名称。 4. 在你的Spring Boot应用程序根目录下创建一个名为`Dockerfile`的文件,并添加以下内容: ```Dockerfile FROM openjdk:8-jdk-alpine COPY target/your_app.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 这个Dockerfile文件将使用Alpine版本的OpenJDK 8作为基础镜像,并将构建的Spring Boot应用程序的JAR文件复制到镜像中。 5. 最后,在命令行中进入你的项目根目录,并运行以下命令来构建和启动Docker容器: ``` docker-compose up --build ``` 这将根据Docker Compose文件构建和启动两个容器:一个是包含你的Spring Boot应用程序的容器,另一个是MySQL数据库的容器。在启动过程中,数据库表结构将会自动创建。 请注意,以上步骤中的配置信息应该根据你的实际需求进行调整,例如数据库名称、用户名、密码等。另外,确保你已经安装了DockerDocker Compose,并且已经在命令行中切换到了正确的项目目录。 希望以上信息对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值