package io.jenkins.plugins.tools; import hudson.model.TaskListener; import java.io.PrintStream; import org.apache.commons.lang.StringUtils; /** * @author liuwei * @date 2020-04-29 15:25:29 */ public class Logger { /** * 日志 icon */ private static final String LOG_ICON = "\uD83C\uDF4F"; /** * 日志连接线符号 */ private static final String LOG_LINE_SYMBOL = "\uD83C\uDF2B"; /** * 连接线单边的长度 */ private static final short LOG_LINE_HALF_COUNT = 12; /** * 单条连接线 */ private static final String LOG_HALF_LINE = StringUtils .repeat(LOG_LINE_SYMBOL, LOG_LINE_HALF_COUNT); /** * 日志标题 */ private static final String LOG_TITLE = "钉钉机器人调试日志信息开始"; /** * 标题占位符 */ private static final String LOG_TITLE_PLACEHOLDER = StringUtils .repeat(LOG_LINE_SYMBOL, LOG_TITLE.length()); /** * 统一输出错误日志 * * @param listener 任务监听器 * @param msg 消息 */ public static void error(TaskListener listener, String msg, Object... args) { listener.error("钉钉机器人发生错误:%s", String.format(msg, args)); } /** * 统一输出调试日志 * * @param listener 任务监听器 * @param msg 消息 */ public static void debug(TaskListener listener, String msg, Object... args) { PrintStream logger = listener.getLogger(); logger.println(); logger.println(String.format(msg, args)); } /** * 分割线 * * @param listener 任务监听器 * @param lineType 线的类型 */ public static void line(TaskListener listener, LineType lineType) { PrintStream logger = listener.getLogger(); if (LineType.START.equals(lineType)) { logger.println(); logger.println(LOG_ICON + LOG_HALF_LINE + LOG_TITLE + LOG_HALF_LINE + LOG_ICON); } else { logger.println(LOG_ICON + LOG_HALF_LINE + LOG_TITLE_PLACEHOLDER + LOG_HALF_LINE + LOG_ICON); logger.println(); } } public enum LineType { /** * 开始 */ START, /** * 结束 */ END; } }