Java库:Jansi - 彩色日志输出体验

  • 环境:JDK8、springboot
  • 依赖库:Jansi

Jansi简介:Jansi是一个小型 Java 库,它允许您使用ANSI 转义码来格式化您的控制台输出,即使在 Windows 上也可以使用。

  • 引入依赖
<dependency><groupId>org.fusesource.jansi</groupId><artifactId>jansi</artifactId><version>2.4.0</version>
</dependency>
  • 使用junit体验
@Test
void  testJansi() {System.out.println(ansi().eraseScreen().fgRgb(188,232,105) // 使用rgb颜色.a(Ansi.Attribute.UNDERLINE) // + 下划线.a("Hello") // 作用于"Hello"文字上.bg(GREEN) // 绿色背景.fgRgb(189,233,105).a(Ansi.Attribute.UNDERLINE_OFF) // - 下划线.a("World") // 作用于....reset()); // 输出
}
  • 输出

  • 总结:下面有彩蛋

如果自己有需求可以对它进行二次封装

  • 使用场景

老实说,打印彩色字体打印在控制台上确实比较少见,日志库也有颜色的功能,但没有jansi的颜色、样式丰富,但是放眼看看node.js配合color.js的日志输出就很前端美学

所以,有jansi库和没有对于开发效率而言没有半毛钱关系,如果你和我一样在意Java服务器开发日志输出的优雅、美学方面,那Jansi正是你所需要的

  • 彩蛋
System.out.println(ansi().eraseScreen().a("\33[44m\n" +"\33[40m\33[30m                     //\n" +"\33[37m         \\\\         //\n" +"\33[36m          \\\\       //\n" +"\33[35m    ##DDDDDDDDDDDDDDDDDDDDDD##\n" +"\33[34m    ## DDDDDDDDDDDDDDDDDDDD ##\n" +"\33[33m    ## hh                hh ##\n" +"\33[32m    ## hh    //    \\\\    hh ##\n" +"\33[31m    ## hh   //      \\\\   hh ## \n" +"\33[30m    ## hh                hh ##\n" +"\33[31m    ## hh      wwww      hh ##\n" +"\33[32m    ## hh                hh ##\n" +"\33[33m    ## MMMMMMMMMMMMMMMMMMMM ##\n" +"\33[34m    ##MMMMMMMMMMMMMMMMMMMMMM##\n" +"\33[35m         \\/            \\/\n"+ "\33[44m"));

可以用jansiANSI符号控制颜色,具体ANSI去Google或百度

图片转成ANSI格式并打印在控制台

  • 再给大家看个更牛逼的

原图:

没错,因为想到jansi底层用的是ansi,所以找到能将图片转ansi的文件(也就是.ans文件)即可

图片 convert ANSI(国外网站):https://manytools.org/hacker-tools/convert-image-to-ansi-art/

如此考虑下来,因为图片转ANSI的精度肯定没有图片的精度高,那就用精度低的Logo试一试:jansi官网的Log

转成ansi文件后,效果基本上可以还原了

BufferedReader bufferIs = new BufferedReader(new FileReader("D:\\Desktop\\jansi-ansi-art.utf.ans"));
StringBuilder sb = new StringBuilder();
String str = null;
while ((str = bufferIs.readLine()) != null) { sb.append(str  + "\n"); }
System.out.println(ansi().eraseScreen().a(sb));
bufferIs.close();

Java库:Jansi - 彩色日志输出体验相关推荐

  1. java 使用logback进行日志输出

    在java项目中使用logback可以非常方便的进行日志输出,logback的使用方法与log4j非常类似:使用logback所需要的jar包包括: logback-classic-1.0.13.ja ...

  2. C++plog库,轻量级日志框架(日志库)

    文章目录 为何建议程序员在项目中使用第三方日志库 第三方日志库plog的优势 plog主要头文件及使用方法解释 plog/Log.h plog/Appenders/ColorConsoleAppend ...

  3. spring boot日志配置文件(彩色日志)logback-spring.xml

    文章目录 前言 ✨彩色日志 ✨输出到控制台 ✨输出到文件 1.输出所有日志 2.输出错误日志 ✨配置不同环境下的日志级别 ✨完整的logback-spring.xml文件配置 ✨文件下载 前言 spr ...

  4. 【超哥原创分享】自定义实现日志输出,抛弃任何依赖包,日志输出随心走,弃繁就简,简而不凡

    简要说明: 现在日志输出框架太多,想找个简单的用用,结果没找到.日志输出中又不想做任何依赖处理,所以就自己做了一个日志输出.完整代码如下: package com.liangchao.luckdraw ...

  5. logback 日志打印,彩色日志

    一.logback控制台常规日志输出 常规配置 <configuration><appender name="STDOUT" class="ch.qos ...

  6. Java日志(slf4j+logback)及打印彩色日志

    一.maven依赖 在pom文件增加slf4j+logback依赖 <!-- 版本配置 --> <properties><slf4j.version>1.7.21& ...

  7. Logback日志乱码,指定日志输出路径,日志彩色输出

    Logback日志乱码: 处理方案1: <encoder><charset class="java.nio.charset.Charset">UTF-8&l ...

  8. Java日志输出Logger,Commons Logging,Log4j的运用

    日志 在编写程序的过程中,常常用System.out.println()打印出执行过程中的某些变量,观察每一步的结果与代码逻辑是否符合,然后有针对性地修改代码.改好之后又要删除打印语句,这样很麻烦. ...

  9. 肝了2天,把终端输出的彩色日志都搬到了浏览器上。

    前言 前段时间在使用 Travis CI 的时候发现它的部署日志包含了很多带色彩的日志. 并且我们知道,在使用命令行终端的时候也会出现这些可爱的色彩. 当然我不是为了吹它而吹它,它是有实际的作用的,能 ...

最新文章

  1. LeetCode简单题之数组中第 K 个独一无二的字符串
  2. 关于深度学习推荐系统领域的15个问题
  3. ASP.NET MVC入门到精通——Spring.net-业务层仓储
  4. Codis集群扩容方法
  5. 【 MATLAB 】信号处理工具箱之 dct 简介及案例分析
  6. 利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题
  7. android EventBus的简单使用
  8. 折纸 瓦力机器人_折纸图解金鱼筷子架
  9. ExtJs之ExtJs.Model验证
  10. 【翻译】Brewer's CAP Theorem CAP定理
  11. C++ set 排序 修改元素之后不会改变原来的排序
  12. php调java_php调java接口
  13. 城市三字码,机场三字码(CITY / AIRPORT 3 LETTERS CODE)
  14. Docker安装Redis 6.2.6的3主3从集群和集群的扩缩容操作
  15. Minifilter中 Filter Initiated I/O(过滤器自产生I/O)
  16. uni-app获取当前时间日期及之后7天和星期几
  17. python实现随机密码生成
  18. 【3Dprinter】3D打印机机型结构 UM、I3、Hbot等的简单介绍
  19. android 语音和输入法按钮切换,android 切换系统语言,输入法也随之切换
  20. 软件设计-UML类图详解说明

热门文章

  1. java计算机毕业设计web企业档案管理系统MyBatis+系统+LW文档+源码+调试部署
  2. 基于thinkjs 3.x 转发下载图片 示例
  3. Linux系统中对SSD硬盘优化的方法
  4. 100天精通Python丨办公效率篇 —— 14、Python这些小技巧,让文件管理更加智能
  5. python查看显存占用情况以及使用numba.cuda释放显存
  6. 常用缓存淘汰策略FIFO、LFU、LRU
  7. font-spider 压缩字体文件 html vue
  8. 无线局域网控制器(WLC)常见问题1
  9. Android Dialer--通讯整体过程分析
  10. HDMI接口与HDMI协议