https://raw.githubusercontent.com/AzurTian/ImgBed/master/blog/logo.png

AzurTian's Blog

Git命令

子模块

添加子模块

git submodule add child_module_url

主仓库和子模块仓库同时拉取

git clone --recurse-submodules repo-url

若主仓库已经拉取,单独拉取子模块

Log4j2模板

log4j2 pattern format website

config xml file

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="15">
    <properties>
        <property name="LOG_HOME">logs</property>
        <property name="PATTERN_FORMAT">%d{HH:mm:ss.SSS} [%t] [%-5level] %c.%M(%L) - %msg%n</property>
    </properties>

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${PATTERN_FORMAT}" />
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="NEUTRAL" />
        </Console>

        <RollingRandomAccessFile name="DebugFile"
                                 fileName="${LOG_HOME}/debug.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/debug-%d{yyyy-MM-dd}-%i.log.zip">
            <Filters>
                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL" />
                <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
            <PatternLayout pattern="${PATTERN_FORMAT}" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="15 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" >
                <Delete basePath="${LOG_HOME}/" maxDepth="5">
                    <IfFileName glob="*debug*.log.zip"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="InfoFile"
                                 fileName="${LOG_HOME}/info.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/info-%d{yyyy-MM-dd}-%i.log.zip">
            <Filters>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL" />
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
            <PatternLayout pattern="${PATTERN_FORMAT}" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="15 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" >
                <Delete basePath="${LOG_HOME}/" maxDepth="5">
                    <IfFileName glob="*info*.log.zip"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="ErrorFile"
                                 fileName="${LOG_HOME}/error.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/error-%d{yyyy-MM-dd}-%i.log.zip">
            <Filters>
                <ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="NEUTRAL" />
                <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
            <PatternLayout pattern="${PATTERN_FORMAT}" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="15" >
                <Delete basePath="${LOG_HOME}/" maxDepth="5">
                    <IfFileName glob="*error*.log.zip"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="FatalFile"
                                 fileName="${LOG_HOME}/fatal.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/fatal-%d{yyyy-MM-dd}-%i.log.zip">
            <Filters>
                <ThresholdFilter level="FATAL" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
            <PatternLayout pattern="${PATTERN_FORMAT}" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="5 MB" />
            </Policies>
            <DefaultRolloverStrategy max="5" >
                <Delete basePath="${LOG_HOME}/" maxDepth="5">
                    <IfFileName glob="*fatal*.log.zip"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <Logger name="org.apache" level="ERROR"/>
        <Logger name="org.mybatis" level="DEBUG"/>

        <Root level="INFO">
            <AppenderRef ref="Console" />
            <AppenderRef ref="DebugFile"/>
            <AppenderRef ref="InfoFile" />
            <AppenderRef ref="ErrorFile" />
            <AppenderRef ref="FatalFile" />
        </Root>
    </Loggers>
</Configuration>

config yaml file

Configuration:
  status: warn
  Properties:
    Property:
      - name: LOG_HOME
        value: logs
      - name: PATTERN_FORMAT
        value: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] %c{1.5.*}.%M(%L) - %msg%n%throwable"
  Appenders:
    Console:
      name: ConsoleAppender
      target: SYSTEM_OUT
      PatternLayout:
        pattern: ${PATTERN_FORMAT}
    RollingRandomAccessFile:
      name: FileAppender
      fileName: ${LOG_HOME}/app.log
      filePattern: "${LOG_HOME}/%d{yyyy-MM}-week-${date:w}/%d{yyyy-MM-dd}-%i.log.zip"
      PatternLayout:
        pattern: ${PATTERN_FORMAT}
      Policies:
        SizeBasedTriggeringPolicy:
          size: 50MB
        TimeBasedTriggeringPolicy:
          interval: 1
          modulate: true
      DefaultRolloverStrategy:
        max: 30
        Delete:
          basePath: ${LOG_HOME}
          maxDepth: 3
          IfFileName:
            glob: "*/week-*/*.log.zip"

  Loggers:
    Root:
      level: info
      AppenderRef:
        - ref: ConsoleAppender
        - ref: FileAppender
    Logger:
      - name: org.apache
        level: warn
      - name: org.mybatis
        level: debug

springboot指定yaml配置文件

logging:
  config: classpath:log4j2.yaml

SQLite配置

创建db文件

sqlite3 dbname.db

springboot集成sqlite和druid

spring:
  datasource:
    url: jdbc:sqlite:lib/asir.db
    driver-class-name: org.sqlite.JDBC
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 60000
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

Docker安装

安装docker

卸载旧版本

无论之前有没有下载过皆可执行

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

设置yum库

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装最新版本docker引擎

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动docker

sudo systemctl start docker

测试docker

sudo docker run hello-world

出现上述界面代表安装成功

VirtualBox最小化安装

一、搭建后台运行的centos7服务器

VirtualBox官网centOS7镜像网站列表清华大学镜像网站链接

首先安装VirtualBox虚拟机,最新版就可以。下载centos7镜像文件,首先打开网站列表,搜索框输入Asia寻找亚洲地区,然后找一个链接点进去,选择版本7,选择isos目录,无脑往下点,然后选择CentOS-7-x86_64-Minimal-2009.iso 镜像文件,下载即可(也可直接点击清华大学的链接,就能直接选对应iso文件下载了)