背景:为了更加方便查看针对的某些日志,log4j2记录 某一个类某些方法打印的日志到指定文件。

第一步:配置log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--根节点configuration有两个属性:status和monitorinterval,有两个子节点:appenders和loggers(可以定义多个Appender和logger)-->
<!--status用来指定log4j本身的打印日志的级别(OFF:最高等级的,用于关闭所有日志记录,这里最好不设置); monitorinterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数 -->
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<configuration monitorInterval="30"><Properties><!--定义变量--><property name="rolling_pattern">%d{yyyy-MM-dd}-%i.gz</property><property name="every_file_size">10MB</property><!-- 日志切割的最小单位 --><property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n</property></Properties><!-- appenders节点,常见的有三种子节点:Console、RollingFile、File --><appenders><!-- 控制台输出--><!-- Console节点用来定义输出到控制台的Appender(输出源)name:指定Appender的名字;target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUTPatternLayout:输出格式,不设置默认为:%m%n   --><Console name="CONSOLE" target="SYSTEM_OUT"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%l)- %m%n" /></Console><!-- 入文件--><!-- RollingFile节点用来定义超过指定大小自动删除旧的创建新的的Appendername:指定Appender的名字fileName:指定输出日志的目的文件带全路径的文件名filePattern:指定新建日志文件的名称格式PatternLayout:输出格式,不设置默认为:%m%nPolicies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,interval属性用来指定多久滚动一次,默认是1 hour。modulate=true用来调整时间:比如现在是早上3am,interval是4,那么第一次滚动是在4am,接着是8am,12am...而不是7amSizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性)。 --><RollingFile name="shortMessageRollingFile" fileName="/opt/nfs_data/logs/shortMessageRollingFile.log"append="true"filePattern="/opt/nfs_data/logs/shortMessageRollingFile.log${rolling_pattern}"><PatternLayout pattern="${log_pattern}" charset="UTF-8"/><Policies><SizeBasedTriggeringPolicy size="${every_file_size}"/><!-- 每天凌晨0点  匹配的所有文件在30天或更长时间内将在翻滚时间删除。--><CronTriggeringPolicy schedule="0 0 0 * * ?"/></Policies><DefaultRolloverStrategy><Delete basePath="${basePath}" maxDepth="2"><IfFileName glob="*.gz"/><IfLastModified age="30d"/></Delete></DefaultRolloverStrategy></RollingFile></appenders><!-- loggers节点,常见的有两种:root和logger.root节点用来指定项目的根日志,如果没有单独指定logger,那么就会默认使用该root日志输出level:日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.appender-ref:root的子节点,用来指定该日志输出到哪个Appender.logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。level:日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.name:用来指定该logger所适用的类或者类所在的包全路径,继承自root节点.appender-ref:logger的子节点,用来指定该日志输出到哪个Appender,如果没有指定,就会默认继承自root.如果指定了,那么会在指定的这个Appender和root的Appender中都会输出,此时我们可以设置logger的additivity="false"只在自定义的Appender中进行输出。 --><loggers><!-- 控制台日志 --><root level="Trace"><appender-ref ref="CONSOLE"/></root><Logger name="shortMessageLogger" additivity="false" level="INFO"><appender-ref ref="shortMessageRollingFile" level="INFO"/></Logger></loggers>
</configuration>

第二步:代码类中引入

@Service
public class ShortMessageServiceImpl implements ShortMessageService {private final Logger logger = LogManager.getLogger(this.getClass());private static final Logger shortMessageLogger = LogManager.getLogger("shortMessageLogger");....@Override@Asyncpublic void sendMessage(ShortMessage shortMessage, UserCurProSch proSch, SendExaBean enrollinfo) {//控制台打印logger.info("发送短信开始,电话:" + shortMessage.getPhone());logger.info("发送短信回调,phone:{},type:{},status:{},Data:{}",shortMessage.getPhone(), shortMessage.getType(), result.getStatus(), result.getData());//记录到指定文件shortMessageLogger.info("信管发送短信回调,phone:" + shortMessage.getPhone() + ",type:" + shortMessage.getType() + ",status:" + result.getStatus() + ",Data:" + result.getData());....

效果展示:

【log4j2打印日志】指定日志打印到指定文件相关推荐

  1. log4j2的一些配置,为某个类某个方法单独文件打印日志,定时删除日志和springboot的logback日志单独类打印

    log4j2.xml配置如下:<?xml version="1.0" encoding="UTF-8"?> <!-- status=" ...

  2. springmvc使用log4j2的配置,以及解决controller日志只有控制台打印日志,不生成本项目文件夹下

    文章目录 1.引包 2. log4j2.xml的配置 3.配置文件中的一些说明 springmvc使用log4j2的配置,以及只有控制台打印日志,不生成文件的解决方式,mvc使用log4j2时会出现在 ...

  3. Go 学习笔记(54)— Go 第三方库之 uber-go/zap/lumberjack(记录日志到文件、支持自动分割日志、支持日志级别、打印调用文件、函数和行号)

    1. 简要说明 zap 是 uber 开源的 Go 高性能日志库,支持不同的日志级别, 能够打印基本信息等,但不支持日志的分割,这里我们可以使用 lumberjack 也是 zap 官方推荐用于日志分 ...

  4. android 是否允许打印debug级别日志的开关_log日志功能及设置方法

    log日志功能及设置方法的详细介绍,首先引入Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍,下面一起跟随小编过来看看吧. 一.日志级别(从低到高): DEB ...

  5. python使用logging打印信息到日志文件中

    python使用logging打印信息到日志文件中 参考 Python输出日志信息 Python + logging 输出到屏幕,将log日志写入文件 使用logging打印日志到文件中的目的是: 解 ...

  6. ios 打印 详细错误日志_【专家专栏】林相宇 | IOS错误日志抓取和分析

    原标题:[专家专栏]林相宇 | IOS错误日志抓取和分析 在调试自己和别人的IOS App时,发生Crash是非常正常的情况,分析这些Crash的主要手段之一就是分析Crash发生时产生的错误日志.对 ...

  7. 【游戏开发进阶】新发带你玩转Unity日志打印技巧(彩色日志 | 日志存储与上传 | 日志开关 | 日志双击溯源)

    文章目录 一.前言 二.常规日志打印 1.打印Hello World 2.打印任意类型的数据 3.context参数干嘛的 4.格式化输出 三.彩色日志打印 四.日志存储与上传 1.打印日志事件 2. ...

  8. python 打印模块_Python 日志打印模块

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  9. Mybatis指定日志输出实现

    10             Mybatis指定日志输出实现 在程序开发过程中,为了调试方便.了解程序的运行过程,进行必要的日志输出总是免不了的.对于使用Mybatis而言,我们常见的需求是希望可以在 ...

最新文章

  1. Docker 部署SpringBoot项目不香吗?
  2. js获取asp.net服务器端控件Label,TextBox,RadioButtonList,DropDownList的值
  3. 近期活动盘点:高管AI大数据能力研修班、英伟达初创企业展示开启报名
  4. vb.net 线程偶尔不会自动关闭_C# 多线程系列(7)手动线程通知
  5. android蓝牙查看电池容量_双麦降噪+高保真音效 QCY Air Bean真无线智能蓝牙耳机评测...
  6. tar time stamp in the future问题
  7. c++中利用STL实现公司员工分组问题
  8. [BJWC2011]元素
  9. 商业认知,在创业的时候,有人今天做服装不赚钱,就换了餐饮;换了餐饮业不赚钱,又继续换?
  10. (第四章)数据表的约束
  11. centos中安装、升级git
  12. nodejs爬虫实战_实战nodejs写网络爬虫
  13. java 对session的基本使用
  14. STAMP:扩增子、宏基因组统计分析神器(中文帮助文档)
  15. 计算机中常用的数学知识
  16. 卫星导航系统的发展历史
  17. 免费版xshell下载地址
  18. SPARK SQL ERROR: Detected cartesian product for INNER join between logical plans报错解决方法
  19. JOL(java object layout --java 对象内存布局)
  20. TeamViewer轻松解决企业远程办公安全隐患

热门文章

  1. 刚刚入门,还请各路大神多多关照
  2. springboot+mysql+软件工程课程思政微平台的设计与实现 毕业设计-附源码271113
  3. tomcat默认端口号简介
  4. SQL约束名创建与修改添加
  5. egret白鹭引擎RES资源管理模块,资源动态加载失效BUG,加载卡死BUG,完整解决方案与超详细调试漏洞过程
  6. 运维开发实践 - Docker - 容器实现原理
  7. Android/安卓 TextView滚动字幕,文字循环演示
  8. 【计算机视觉】照相机模型与增强现实
  9. mysql wb bbu_全面优化MySQL
  10. 思维-思维方式:思维方式