美文网首页
11.SpringShell自定义启动信息

11.SpringShell自定义启动信息

作者: Java扫地僧 | 来源:发表于2019-01-29 11:23 被阅读0次

SpringShell 应用启动时, 默认会输出Spring Shell 的启动信息. 对于一个专业的shell来讲, 输出Spring相关的启动信息, 肯定是不合适的, 我们需要输出我们系统相关的信息.

1. SpringShell 默认启动信息

SpringShell 的启动信息一共包括三部分: SpringBoot banner, SpringBppt启动类日志, shell命令提示符.

# SpringBoot banner
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.2.RELEASE)

# SpringBooot 启动类日志
2019-01-25 16:05:59.260  INFO 14751 --- [           main] o.z.l.s.shell.SpringShellApplication     : Starting SpringShellApplication v0.0.1-SNAPSHOT on zongf-E570 with PID 14751 (/data/idea/learn-spring/spring-shell/target/spring-shell-0.0.1-SNAPSHOT.jar started by zongf in /data/idea/learn-spring/spring-shell/target)
2019-01-25 16:05:59.265  INFO 14751 --- [           main] o.z.l.s.shell.SpringShellApplication     : No active profile set, falling back to default profiles: default
2019-01-25 16:06:00.561  INFO 14751 --- [           main] o.z.l.s.shell.SpringShellApplication     : Started SpringShellApplication in 1.79 seconds (JVM running for 2.263)

# shell 命令提示符
shell:>

2. 自定义启动信息

对于SpringShell 应用默认的三部分启动信息, 我们需要分别进行处理.

2.1 自定义banner

  • 由于SpringShell 应用本身就是一个SpringBoot 应用, 因此借助于SpringBoot应用自定义Banner方案即可实现.
  • 修改SpringBoot应用banner 只需要在resources文件夹中添加banner.txt文件即可, 可以自定义banner内容, 样式, 颜色等, 具体文件内容格式非本博客核心内容, 故笔者不在此详述.
  • 笔者指定banner 内容, 字体颜色, 版本号等信息.
  • 文字banner生成网站:http://patorjk.com/software/taag/#p=display&f=Slant&t=MYSHELL
${AnsiColor.BRIGHT_YELLOW} ${AnsiStyle.BOLD}
Welcom to :
    __  _____  _______ __  __________    __
   /  |/  /\ \/ / ___// / / / ____/ /   / /
  / /|_/ /  \  /\__ \/ /_/ / __/ / /   / /
 / /  / /   / /___/ / __  / /___/ /___/ /___
/_/  /_/   /_//____/_/ /_/_____/_____/_____/

Version: ${application.version}
Author: zongf
Date: 2019-01-26

2.2 自定义系统日志

SpringBoot启动类日志级别为info, 我们只需要将启动类日志提升为warn即可. 直接修改application.yml 文件即可. 笔者修改为:

# pattern 并没有实际用处, 这是笔者测试时用的.
logging:
  pattern:
    console: "%date{yyyy-MM-dd HH:mm:ss.SSS}[%level][%thread]-%msg%n"
  level:
    org.zongf.learn.spring.shell.SpringShellApplication: warn

2.3 自定义命令提示符

SpringShell 自定义命令提示符在笔者之前的博客中已经提及了, 新增自定义命令提示符组件即可.

@Component
public class CustomPromptProvider implements PromptProvider {

    @Override
    public AttributedString getPrompt() {

        // 获取主机名称
        String hostName = getHostName();

        // 设置命令提示符文字
        String promot = "spring@" + hostName + "> ";

        // 设置命令提示符字体样式
        AttributedStyle promotStyle = AttributedStyle.BOLD.foreground(AttributedStyle.GREEN);

        // 返回命令提示符
        return new AttributedString(promot, promotStyle);
    }

    /**
     * @Description: 获取主机名称
     * @return: String 主机名称
     * @author: zongf
     * @time: 2019-01-26 08:58:45
     */
    private String getHostName(){
        String hostName = "";
        try {
            InetAddress inetAddress = InetAddress.getLocalHost();
            hostName = inetAddress.getHostName();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return hostName;
    }
}

3. 启动SpringShell 应用

重新打包后启动应用, 会发现启动信息完全实现了定制化.

$ ./bin/spring-shell.sh

Welcom to :
    __  _____  _______ __  __________    __
   /  |/  /\ \/ / ___// / / / ____/ /   / /
  / /|_/ /  \  /\__ \/ /_/ / __/ / /   / /
 / /  / /   / /___/ / __  / /___/ /___/ /___
/_/  /_/   /_//____/_/ /_/_____/_____/_____/

Version: 0.0.1-SNAPSHOT
Author: zongf
Date: 2019-01-26


spring@zongf-E570> add 1 2
3

相关文章

网友评论

      本文标题:11.SpringShell自定义启动信息

      本文链接:https://www.haomeiwen.com/subject/metxsqtx.html