广告
返回顶部
首页 > 资讯 > 后端开发 > Python >maven如何使用slf4j输出日志到文件
  • 748
分享到

maven如何使用slf4j输出日志到文件

2024-04-02 19:04:59 748人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录使用slf4j输出日志到文件log4j.propertiesslf4j将部分日志打印在其他文件中logback.xml配置中新增一个FileAppender在需要额外打印日志的地

使用slf4j输出日志到文件

log4j.properties

### set log levels ###
log4j.rootLogger=debug, stdout, D, E
#ConsoleAppender,控制台输出
#FileAppender,文件日志输出
#SMTPAppender,发邮件输出日志
#SocketAppender,Socket 日志
#NTEventLogAppender,Window NT 日志
#SyslogAppender,
#JMSAppender,
#AsyncAppender,
#NullAppender
#文件输出:RollingFileAppender
#log4j.rootLogger = INFO,logfile
### 输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
### 布局格式,可以灵活指定
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
### 消息格式化
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss:SSSS} %m%n
### 输出到日志文件 ###
log4j.appender.D=org.apache.log4j.RollingFileAppender
log4j.appender.D.File=logs/log.log
log4j.appender.D.Append=true
log4j.appender.D.Threshold=DEBUG
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss:SSSS} %m%n
# 一个 log 文件的大小,超过这个大小就又会生成 1 个日志 # KB ,MB,GB
log4j.appender.D.MaxFileSize=5MB
# 最多保存 3 个文件备份
log4j.appender.D.MaxBackupIndex=5
### 保存异常信息到单独文件 ###
log4j.appender.E=org.apache.log4j.RollingFileAppender
log4j.appender.E.File=logs/error.log
log4j.appender.E.Append=true
log4j.appender.E.Threshold=ERROR
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss:SSSS} method:%l %m%n
# 一个 log 文件的大小,超过这个大小就又会生成 1 个日志 # KB ,MB,GB
log4j.appender.E.MaxFileSize=5MB
# 最多保存 3 个文件备份
log4j.appender.E.MaxBackupIndex=5

slf4j将部分日志打印在其他文件中

logback.xml配置中新增一个FileAppender

并定义输出格式和路径

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="log.base" value="/logs"/>
    <property name="log.moduleName" value="zhxy-service-order"/>  <!-- 模块名称, 影响日志配置名,日志文件名 -->
    <property name="log.base.order" value="/logs/orderLog"/>
    <property name="log.max.size" value="1024MB"/> <!-- 日志文件大小 -->
 
    <!-- 彩色日志 -->
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
 
    <!-- Console 输出设置 -->
    <appender name="ConsoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <!-- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>
 
    <!-- Info日志文件输出 -->
    <appender name="FileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--只输出INFO-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!--过滤 INFO-->
            <level>DEBUG</level>
            <!--匹配到就禁止-->
            <onMatch>ACCEPT</onMatch>
            <!--没有匹配到就允许-->
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是WEB项目会保存到Tomcat的bin目录 下 -->
        <File>${log.base}/${log.moduleName}_info.log</File>
        <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${log.base}/${log.moduleName}_info_%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
            <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${log.max.size}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!--日志输出的文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
 
    <!--Error日志文件输出-->
    <appender name="FileErrorLog"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!--设置日志级别,过滤掉info日志,只输入error日志-->
            <level>ERROR</level>
        </filter>
        <!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
        <File>${log.base}/${log.moduleName}_error.log</File>
        <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${log.base}/${log.moduleName}_error_%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
            <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${log.max.size}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!--日志输出的文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
 
    <!-- Info日志文件输出 -->
    <appender name="OrderLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--只输出INFO-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!--过滤 INFO-->
            <level>DEBUG</level>
        </filter>
        <!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
        <File>${log.base.order}/${log.moduleName}_info.log</File>
        <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${log.base.order}/${log.moduleName}_info_%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
            <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${log.max.size}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!--日志输出的文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
 
    <!--日志等级设置-->
    <logger name="org.springframework" level="error"></logger>
    <root level="info">
        <appender-ref ref="ConsoleLog"/>
    </root>
 
    <!-- 为某个包下的所有类的指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName -->
    <logger name="com.company"  level="debug">
        <appender-ref ref="FileInfoLog"/>
        <appender-ref ref="FileErrorLog"/>
    </logger>
 
    <logger name="order" level="debug">
        <appender-ref ref="OrderLog"/>
    </logger>
</configuration>

在需要额外打印日志的地方

Logger orderLog = LoggerFactory.getLogger("order");
orderLog.info("singleOrder params: {}",params);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: maven如何使用slf4j输出日志到文件

本文链接: https://www.lsjlt.com/news/141751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • maven如何使用slf4j输出日志到文件
    目录使用slf4j输出日志到文件log4j.propertiesslf4j将部分日志打印在其他文件中logback.xml配置中新增一个FileAppender在需要额外打印日志的地...
    99+
    2022-11-13
  • 学习SpringBoot使用slf4j日志并输出到文件中
    slf4j日志(3月11日) 再使用前,先了解一下介绍,否则你也不会用! 1、日志级别 SLF4J将日志分为trace、debug、info、warn、error五个级别,每个级别对应记录不同...
    99+
    2023-09-02
    spring boot 学习 java
  • @Slf4j 如何实现日志输入到外部文件
    目录@Slf4j实现日志输入到外部文件1. 添加一个配置文件直接在代码中使用@Slf4j日志文件打印和输出文件首先配置lombok添加一个配置文件方法中的使用@Slf4j实现日志输入...
    99+
    2022-11-12
  • docker日志如何输出到文件
    在Docker中,可以使用以下两种方式将日志输出到文件:1. 使用Docker日志驱动(Logging Driver):Docker...
    99+
    2023-09-28
    docker
  • java Logback输出日志内容到文件
    要将logger.info的信息输出到文件,您可以使用Logback配置。下面是一个简单的示例: 1.首先,在您的项目中添加Logback依赖,例如在Maven项目中的pom.xml文件中添加以下代码...
    99+
    2023-09-11
    java logback 开发语言
  • linux如何把日志输出到文本
    在Linux中,可以通过重定向操作符将日志输出到文本文件中。你可以使用以下命令将命令的输出重定向到文件:```command > l...
    99+
    2023-10-09
    linux
  • shell脚本怎么输出日志到文件
    在shell脚本中,可以使用重定向操作符`>`将标准输出或标准错误输出到文件中。以下是将脚本中的日志输出到文件的几种常见方式:1. ...
    99+
    2023-09-14
    shell
  • JAVA中使用log4j及slf4j进行日志输出的方法
    JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用方法。 一、下载log4j的架包,并导入项目中,如下: 二、创建log4j.properties配置文件 1、log4j配置文件的位置...
    99+
    2023-10-06
    java log4j 单元测试
  • 使用Java如何监控并输出日志文件
    使用Java如何监控并输出日志文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码1:日志产生类package com.bill99.seashell.domain.svr;...
    99+
    2023-05-31
    java ava
  • 如何使用shell将脚本输出结果记录到日志文件
    这篇文章将为大家详细讲解有关如何使用shell将脚本输出结果记录到日志文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用tee命令:sh portal/main.sh |tee log.txt获取脚本...
    99+
    2023-06-09
  • linux怎么运行日志输出到指定文件
    在Linux中,可以使用重定向符号`>`将命令的输出重定向到指定文件。以下是几种常见的将日志输出到指定文件的方法:1. 使用`>`符...
    99+
    2023-09-27
    linux
  • Python + logging输出到屏幕,将log日志写入到文件
    logging提供了一组便利的函数,用来做简单的日志。它们是 debug()、 info()、 warning()、 error() 和 critical()。 logging函数根据它们用来跟踪的事件的级别或严重程度来命名。标准级别及其适...
    99+
    2023-10-06
    python 软件测试 程序员 接口测试 自动化测试 测试工程师
  • log4j如何控制日志输出文件名称
    小编给大家分享一下log4j如何控制日志输出文件名称,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!log4j控制日志输出文件名称1. 第一种方式在类对象中用如下方...
    99+
    2023-06-22
  • nginx中如何输出php错误日志文件
    这篇文章主要介绍“nginx中如何输出php错误日志文件”,在日常操作中,相信很多人在nginx中如何输出php错误日志文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx中如何输出php错误日志文件...
    99+
    2023-07-05
  • python如何使用print输出日志
    这篇文章主要为大家展示了“python如何使用print输出日志”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用print输出日志”这篇文章吧。如何使用 print 输出日志初...
    99+
    2023-06-27
  • Spring如何按业务模块输出日志到不同的文件详解
    目录一、背景二、需求三、技术实现四、代码实现1、编写xml日志文件2、编写QQ模块的代码3、编写login模块的代码五、运行结果六、完整代码七、一个小知识点总结一、背景 在我们开发的...
    99+
    2022-11-13
  • dubbo 如何使用logback来输出日志
    dubbo logback输出日志 两者皆为国内使用比较广的两个开源框架:一个是服务治理框架,另一个则是日志框架。这个问题的解决方案一部分就在dubbo官网上: dubbo的日志适配...
    99+
    2022-11-12
  • shell将脚本输出结果记录到日志文件的实现
    使用tee命令: sh portal/main.sh |tee log.txt 获取脚本父类路径 cmddir="`dirname $0`" 以上这篇shell将脚本输出结果记录到日志文件的实现就是小...
    99+
    2022-06-04
    脚本 文件 日志
  • Python3 Loguru输出日志工具如何使用
    这篇文章主要介绍“Python3 Loguru输出日志工具如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python3 Loguru输出日志工具如何使用”文章能帮助大家解...
    99+
    2023-07-06
  • Python如何将控制台输出另存为日志文件
    目录Python将控制台输出另存为日志文件需求  方法一:使用 Logger 类(推荐)方法二:仅使用 sys方法三:使用 logging 模块Python记录日...
    99+
    2023-05-19
    Python控制台 Python日志文件 Python控制台输出
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作