我们在项目中使用log4j开发的时候,会遇到一些特殊的情况,比如:要输出某个类中某个方法的日志信息到文件中,方便以后查看

可以使用如下配置:

log4j.rootLogger=info,stdout

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=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.stdout.encoding=UTF-8 log4j.logger.payInfo=info,payInfo
log4j.additivity.payInfo=false
log4j.appender.payInfo=org.apache.log4j.FileAppender
log4j.appender.payInfo.layout=org.apache.log4j.PatternLayout
log4j.appender.payInfo.File=d:/log4j.txt

其中stdout是指输出到控制台的配置。

log4j.logger.payInfo=info,payInfo 是自定义的一个logger

log4j.additivity.payInfo=false  指定该logger不会使用父logger的配置,也就是说不会在console输出。

代码中使用如下:

@Controller
@RequestMapping("pay")
public class PayController extends BaseController{ Logger payLogger = Logger.getLogger("payInfo"); Logger infoLogger = Logger.getLogger(PayController.class); @RequestMapping("test")
public void test(HttpServletRequest request, HttpServletResponse response){
t2();
payLogger.info("这是支付的日志");
}
private void t2(){
infoLogger.info("这是info的日志");
}
}

Logger payLogger = Logger.getLogger("payInfo"); 这里是获取自定义的logger

Logger infoLogger = Logger.getLogger(PayController.class); 这里获取到的就是父logger

方法执行之后会在控制台输出infoLogger.info("这是info的日志");的内容,

而payLogger.info("这是支付的日志");会输出到文件,并且不会在控制台输出。

Log4j 配置某个类中某个方法的输出日志到指定文件的更多相关文章

  1. 第6章 Java类中的方法

    1.如何定义java的方法 什么是方法:方法使用来解决一类问题的代码集合,是一个功能模块在类中定义个方法的方法是: 访问修饰符 返回值类型 方法名(参数列表){ 方法体 } 1.访问修饰符,是限制该方 ...

  2. 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志

    log4j向多个文件记录日志 关键配置,指定想要的日志级别信息输出到指定的日志文件中: log4j.appender.errorLogger.Threshold=ERROR #扩展,可指定只在子类自己 ...

  3. Spring @Cacheable注解 && 事务@Transactional 在同一个类中的方法调用不生效

    @Cacheable 注解在对象内部调用不会生效 代码示例:ProductServiceImpl.java public List<ProductInfoVO> getProductLis ...

  4. 分析spring事务@Transactional注解在同一个类中的方法之间调用不生效的原因及解决方案

    问题: 在Spring管理的项目中,方法A使用了Transactional注解,试图实现事务性.但当同一个class中的方法B调用方法A时,会发现方法A中的异常不再导致回滚,也即事务失效了. 当这个方 ...

  5. java 27 - 6 反射之 通过配置文件运行类中的方法

    在以前,如果我们想要调用一个类中的方法,只能这样子: 例: 有Cat和Dog两个类,里面有eat和run两个成员方法: public class Dog { public void eat() { S ...

  6. WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据

    WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Langu ...

  7. Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别

    首先,用一张图说明一个对象,在Hibernate中,在调用了不同方法之后对象所处的不同状态 在Hibernate中,一个对象的状态可以被分为如图所示的三种 Transient:瞬时对象,该对象在数据库 ...

  8. Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用

    1. Arrays工具类中asList()方法的使用 public static <T> List<T> asList(T... a): 把数组转成集合 注意事项: 虽然可以把 ...

  9. swift -- 类中的方法

    一. 引用类型  类 在类中定义方法 class Person { //属性 var name : String = "" //方法 //实例方法 : 在类里面创建一个方法 fun ...

随机推荐

  1. java操作json

    import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class ReadJson { public static v ...

  2. I.MX6 查看baudrate确定是否被其他程序占用

    /*********************************************************************** * I.MX6 查看baudrate确定是否被其他程序 ...

  3. 洛谷 P1541 乌龟棋 —— DP

    题目:https://www.luogu.org/problemnew/show/P1541 DP. 代码如下: #include<iostream> #include<cstdio ...

  4. .NETFramework-Drawing:Font

    ylbtech-.NETFramework-Drawing:Font 1.返回顶部 1. #region 程序集 System.Drawing, Version=4.0.0.0, Culture=ne ...

  5. less 使用入门

    LESSS是基于JavaScript,所以,是在客户端处理的. 使用less很简单: 1 下载less.js 2 新建less文件后缀名称是.less 3 在页面中引入less文件,跟引入普通的css ...

  6. Ubuntu 16.04安装Wireshark进行抓包

    技巧: 1.可以通过tcpdump抓取某个网卡的包,然后输出日志文件,通过Wireshark进行分析. 2.可以设置Wifi热点,然后通过手机连接这个热点,然后进行tcpdump的分析,然后输出日志文 ...

  7. bzoj 4517: [Sdoi2016]排列计数【容斥原理+组合数学】

    第一个一眼就A的容斥题! 这个显然是容斥的经典问题------错排,首先考虑没有固定的情况,设\( D_n \)为\( n \)个数字的错排方案数. \[ D_n=n!-\sum_{t=1}^{n}( ...

  8. 压力测试之jmeter使用

    我很早之前就会使用jmeter,一直以为压力测试很简单,知道真正去做才明白,真正的压力测试并不只是会用jmeter而已.我现在才明白:会工具并不等同于会压力测试.对于压力测试需要补充的知识还有很多.. ...

  9. apache单ip多域名多目录配置

    自己的vps上放了别人的网站,那怎么样让自己的网站和别人的网站能同时被访问呢?需要使用apache的虚拟主机配置. 配置httpd.conf文件 比如原来是这种只是指向一个目录的配置 Document ...

  10. 安装ipython解释器

    安装ipython解释器 1.安装ipython,指定douban源下载 pip3 install -i https://pypi.douban.com/simple ipython 2.安装朱皮特 ...