日志框架4---基于springboot使用slf4j和logback之如何将日志信息输出到文件、如何控制日志输出格式

日志框架3---基于springboot使用日志框架slf4j和logback

日志框架2---进一步学习slf4j+logback,掌握各日志框架之间的联系

日志框架1---多种日志门面和日志实现初步了解


基于日志框架3中的项目,在测试类中,创建了日志记录器logger,logger是通过LoggingFactory的getLogger()方法得到的,具体代码为:

Logger logger = LoggingFactory.getLogger(getClass());

然后要打印日志到控制台的话,就是不加其他设置,直接用:

logger.info("info...");
logger.error("error...");

等等来使用。

注意日志输出级别springboot默认级别是info,我们可以在配置文件中通过以下来设置:

//logging.level.要设置级别的包名 = info
logging.level.javaDemo = info

如何将日志信息输出到指定文件?

ok,到此之前,日志信息都是打印在控制台的,作用比较局限,和system.out.println()语句的差别也不是很大。下面我们看一下如何将日志信息输出到指定文件中?

要将信息输出在指定文件,我们必须在项目中说明要输出的目标文件。

可以通过配置文件来配置,但是我们可以看到,关于logging.file的有两个选项:

分别来看一下。logging.file.name = 日志文件名

这个配置只指定了文件名,但并没有说明文件的存放路径,所以它是直接将文件放在当前项目的路径下的。试一下:

logging.file.name = myLog.log

日志框架4---基于springboot使用slf4j和logback之如何将日志信息输出到文件、如何控制日志输出格式_第1张图片

由此可见,logging.file.name = myLog.log 就是在项目路径下自动新建一个myLog.log的文件,然后把日志信息都写进这个文件。


其实 logging.file.name = xxx还能指定日志文件的创建路径呢,只需要把 xxx 写成完整的文件路径,比如在e盘下myLog.log。

日志框架4---基于springboot使用slf4j和logback之如何将日志信息输出到文件、如何控制日志输出格式_第2张图片


还有logging.file.path 这个的作用是:在当前项目的磁盘根目录下,创建文件夹,日志文件名采用默认的spring.log

比如:

项目在e盘,那么日志文件就会被创建在:e:/spring/log/spring.log


如何控制日志输出格式?

途径:通过配置文件设置。

前置知识:

%d          表示日期时间
%thread     表示线程名
%-5level    级别从左显示5各字符宽度
%logger{50} logger名字最长50个字符,否则按照句点分割
%msg        日志信息
%n          换行符

配置文件里有这个选项,是用来配置输出在控制台的日志信息的格式的:

 

还有用来配置日志文件中的输出格式的:

再举一个格式的例子:

%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n

这个应该能看懂吧,就是字符串拼接似的。


提问:

1.如何把日志文件输出到指定文件?如果要指定目录怎么做?

2.如何给日志的输出格式做规范呢?

你可能感兴趣的:(Java)