如何通过logback在日志文件中记录表?

问题描述 投票:0回答:1

我有一个项目,应该在控制台的屏幕上以及文件上打印结果。我将Spring Boot与Logback结合使用。我可以将结果打印为屏幕上的表格,但不能将其打印为带有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个回答
0
投票

我确实将log方法更改为以下方法,并且它按预期运行。

    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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.