【问题标题】:How to log a table in the log file with logback?如何使用 logback 在日志文件中记录表?
【发布时间】:2020-02-25 18:14:54
【问题描述】:

我有一个项目应该将结果打印在控制台的屏幕上以及文件中。 我使用带有 logback 的 spring boot。 我可以将结果打印为屏幕上的表格,但在 logback 的日志文件中不是一个好的格式。欢迎任何想法和建议。

查看下面的输出结果。

+------------------+---------------+---------------+--------------+---------------+---------------+--------------+--------------+  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
+------------------+---------------+---------------+--------------+---------------+---------------+--------------+--------------+  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n  
+------------------+---------------+---------------+--------------+---------------+---------------+--------------+--------------+ 

打印方法:

public static void printListAsTable(List<ResultControl> resultcontrolList) {
        String format = "| %-16s | %-13s | %-13s | %-12s | %-13s | %-13s | %-12s | %-12s |%n";
        log("+------------------+---------------+---------------+--------------+---------------+---------------+--------------+--------------+");
        log(format,"Id", "Net", "Mat", "Dat", "Apo", "Nato", "Nano", "Pico");
        log("+------------------+---------------+---------------+--------------+---------------+---------------+--------------+--------------+");
        for (ResultControl result :resultcontrolList ) {
            log(format, result.getId(), result.getNet , result.getMat , result.getDat , result.getApo , result.getNato , result.getNano , result.getPico  );
        }
        log("+------------------+---------------+---------------+--------------+---------------+---------------+--------------+--------------+");
    }



    public static void log(String format, Object... args) {
        System.out.printf(format, args);
        logger.info( format, args);
    }

【问题讨论】:

    标签: java spring-boot logging logback spring-logback


    【解决方案1】:

    我确实将日志方法更改为以下内容,它可以按预期工作。

        public static void log(String format, Object... args) {
            String formatted = String.format(format, args);
            log( formatted);
        }
    
    
        public static void log(String message) {
            logger.info(message);
        }
    

    【讨论】:

      猜你喜欢
      • 2022-12-23
      • 2014-10-25
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多