springboot(一)——搭建自己的springboot项目(附带日志配置)

832 阅读1分钟

idea使用spring Initalizr 快速构建spring boot

  1. 点击新建项目,选择如图所示
  2. 点击next后
  3. 点击next,之后按照图中所示选择
  4. 选择路径
  5. 点击完成,如图所示,删除自己不想要的,项目构建完成
  6. 构建一个controller,启动项目就可以看到返回结果了

在自己的服务器搭建自己的springboot项目

使用idea向远程服务传递项目

  1. 设置idea
  2. 配置相关信息
  3. 上传到指定机器

配置启动脚本,基于java -jar命令

  • start.sh
#!/bin/bash
nohup java -jar target/zplxjj.jar  &
  • stop.sh
#!/bin/bash
PID=$(ps -ef | grep target/zplxjj.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi
~
  • run.sh
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh

启动自己的项目只需要执行run.sh就行,一个自己的spring boot就搭建起来了

logback配置

实际项目中,我们希望日志可以记录在服务器上面,这边用的是logback,是springboot自带的,我这边集成方式是加入logback-spring.xml文件,加入后启动项目即可,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--用来定义变量值的标签-->
    <property name="LOG_HOME" value="./logs"/>
    <property name="encoding" value="UTF-8"/>
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度;%M:%L是方法和行号;%msg是日志消息;%n是换行符-->
    <property name="normal-pattern"
              value="%d{yyyy-MM-dd/HH:mm:ss.SSS}|%X{localIp}|%X{requestId}|%X{requestSeq}|%X{country}|%X{deviceType}|%X{deviceId}|%X{userId}|^_^|[%t] %-5level %logger{50} %line - %m%n"/>
    <property name="plain-pattern" value="%d{yyyy-MM-dd.HH:mm:ss} %msg%n"/>

    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志文件输出的文件名-->
        <file>${LOG_HOME}/zplxjj.log</file>
        <Append>true</Append>
        <prudent>false</prudent>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${normal-pattern}</pattern>
            <charset>${encoding}</charset>
        </encoder>
        <!--按时间分割-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/zplxjj.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
            <maxFileSize>128MB</maxFileSize>
            <maxHistory>15</maxHistory>
            <totalSizeCap>32GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <!--控制台输出-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>${normal-pattern}</pattern>
        </encoder>
    </appender>

    <!-- log file error -->
    <appender name="ERROR"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <file>${LOG_HOME}/zplxjj-error.log</file>
        <prudent>false</prudent>
        <Append>true</Append>
        <encoder>
            <pattern>${normal-pattern}</pattern>
            <charset>${encoding}</charset>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/zplxjj-error.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
            <maxFileSize>128MB</maxFileSize>
            <maxHistory>15</maxHistory>
            <totalSizeCap>32GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="ERROR"/>
    </root>
</configuration>

效果如图:

本人也开通了微信公众号:stonezplxjj和个人博客:www.zplxjj.com,更多文章欢迎关注公众号: