`
dreamstone
  • 浏览: 283849 次
  • 来自: ...
文章分类
社区版块
存档分类

Log4J的一些小技巧和使用中一些须要注意的问题。

阅读更多


一、为多个项目指定使用哪个log4j文件
情况一:多个小项目合成一个大项目,多个小项目有自己不同的入口,这个时候如果使用同一个log4j文件,各个项目的输
出会混乱在一起,如果拆分成多个小项目,看起来又比较散不太好管理。
情况二:一个项目实施在linux上,编写在windows上,log4j的输出目录/opt/xxx/web.log
这个时候开发者被迫必须在本机的workspace所在的目录加入一个opt/xxx/web.log的目录和文件
同时,大多数情况下linux上的服务是不须要输出log到Console,只要输出到文件
而windows大部份是只须要输出到console,不须要输出到文件
本地调试的时候log4j的级别多是debug ,而实际实施的时候多是之上的级别
造成须要不停的修改log4j的属性文件,cvs同步的时候不停的提示
也许你说可以整个项目完成再来写log4j的属性文件,但有的时候这个效果并不好。
因为还有这种时候,项目完成(包括log),反复测试的这段时间。

解决:解决办法很简单,建立一个log4j的配制文件的目录,在这个目录下为每个小项目建立一个目录,
每个目录下放着自己的log4j配制,然後把这些目录作为每个小工程的classpath的第一个,ok上边的问题就
解决了。这个时候可以写一个log4j放在src下,用来开发时候调试用,而真正服务器上使用的都在各自的文件夹下

二,为默写包,某些类定义不同的log4j级别
是否想过这中需求呢,一个项目调试的时候,希望其中默写包不打出log信息。
比如struts的包,spring的包,还有你引用的别人已经开发好包,或者你自己写的类,但是你不想看到这个
类的log信息.但是你须要调试当前的一些class,log级别必须设置在debug级别
这个时候可以在log4j的属性文件中加入如下内容:
log4j.logger.包名or类名=高的级别
例如:
log4j.logger.org.springframework=error

三、注意事项

1 public   void  execute() {
2   // ..
3  logger.debug( " aa " + " bb " + " cc " );
4 }

5


是否这么写过呢?这样写是有些问题的。当你把log级别调整到info或者更高的时候,log信息是不输出了
但是字符串的拼接一样进行了,使你的程序效率降低,实验一下

1 public   void  execute() {
2   // ..
3      logger.debug(getStr());
4 }

5 public  String getStr() {
6      System.out.println( " execute getStr " );
7 }

8


调整log4j属性文件级别到info 结果getStr()照样执行了
解决办法:

1 public   void  execute() {
2   // .
3      if (logger.isDebugEnabled()) {
4         logger.debug(getStr());
5     }

6 }

7
分享到:
评论

相关推荐

    【JavaScript源代码】JavaScript的一些小技巧分享.docx

    JavaScript的一些小技巧分享  数组去重  ES6提供了几种简洁的数组去重的方法,但该方法并不适合处理非基本类型的数组。对于基本类型的数组去重,可以使用... new Set()来过滤掉数组中重复的值,创建一个只有唯一值...

    JavaScript调试之console.log调试的一个小技巧分享

    日常开发中经常会需要console来查看当前对象的值。当然用debugger会更全面的查看,但是...下面这篇文章主要给大家分享了关于JavaScript调试之console.log调试的一个小技巧,需要的朋友可以参考借鉴,下面来一起看看吧。

    ACM做题时的小技巧

    ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够用,可以用...

    JavaScript中的一些实用小技巧总结

    这篇文章主要记录一下平时自己实践得到的, 博客中学习的以及在一些项目源码中看到的 javascript 技巧。有些东西可以说是奇淫技巧,有些可能是 ES6+ 中一些比较具有实用性的新语法。 && 和 || 的妙用 有时候我们需要...

    Linux 101 hacks (2nd)

    技巧31:PS3——Shell 脚本中使用select 时的提示符 技巧32:PS4——PS4-―set -x"用来修改跟踪输出的前缀 技巧33:PROMPT_COMMAND 环境变量 第六章:用功能强大的彩色终端快速使用PS1 技巧34:在提示符中显示用户名...

    asp.net知识库

    在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库...

    操作系统安全:lynic系统安全审计报告分析.docx

    小技巧 如果lynis 不是通过带有man 页面的包进行安装的话,可以输入 # man ?lynis 对于那些SHELL终端背景是浅色的某些系统,可以使用 # lynis --nocolors 后者 # lynis --reverse-colors 可以使用-h 选项去显示所有...

    教你过滤logcat输出

    本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 开发当中经常看到别人的 log 如洪水般瞬间刷满了屏幕,对自己有用的信息都被淹没了,影响心情也影响效率。下面是几个我所知道的过滤方法。 1. 只...

    es6中比较有用的7个技巧小结

    如果你还知道其他一些小技巧,欢迎留言~ 很高兴把它们补充进来。 es6有用的7个技巧 数组去重 var arr = [1, 2, 3, 3, 4]; console.log(...new Set(arr)) >> [1, 2, 3, 4] 数组和布尔 有时我们需要过滤数组中值为 ...

    【JavaScript源代码】JavaScript中条件语句的优化技巧总结.docx

    然而,如果还有更多红颜色的水果需要判断呢,比如樱桃和小红莓,我们要用更多的 ||来扩展这个表述吗? 我们可以用 Array.includes 重写上面的条件! function test(fruit) { const redFruits = ['apple', '

    Toad 使用快速入门

     注意,如果是选择了专门建立toad这个用户的话,需要先修改一下脚本,指定用户的默认表空间和临时表空间。 需要使用Oracle8i 的Profile analyzer,必须运行ToadProfiler.sql  需要加强Toad的安全性,必须...

    android logcat使用

    由此,所有在Calculator中使用的log,均以"Calculator"为开头。 例如使用方法如下所示: # logcat & 得到一个log片段 > W/KeyCharacterMap( 130): No keyboard for id 0 W/KeyCharacterMap( 130): Using default ...

    javascript json对象小技巧之键名作为变量用法分析

    本文实例讲述了javascript json对象小技巧之键名作为变量用法。分享给大家供大家参考,具体如下: 有时候在项目开发过程中,我们需要json对象的键名作为一个变量,键名可变,传统的json格式不支持这个,怎么办呢? ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。 exit 1.作用 exit命令的作用是退出系统,它的使用权限是所有用户。 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统...

    Java 函数式编程的技巧详解.pdf

    像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { log.log(Level.FINE, "I am here, and the value of X is {} and Y is {}",...假定你已经完成了分析,并且判断出是运行环境中Java 组件的性能需要改善。

    Oracle数据库学习指南

    Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 ...50. 怎样在SQLPlus中使用 '&' 来实现自定义参数变量? 51. 怎样在查询记录时给记录加锁 52. 自动备份Oracle数据库

    我的编程感悟(中文PDF)(共37M二分卷)分卷二

    书中传达的不仅是一些实用的技术经验,更是传达一种理念——虽然研发的环境随着时代而变,但研发的精神是不变的,那就是“在实践中积累”。 ——《仙剑奇侠传》之父 姚壮宪 之前我经常奇怪,云风还非常年轻,他...

    我的编程感悟(中文PDF)(共37M二分卷)分卷一

    书中传达的不仅是一些实用的技术经验,更是传达一种理念——虽然研发的环境随着时代而变,但研发的精神是不变的,那就是“在实践中积累”。 ——《仙剑奇侠传》之父 姚壮宪 之前我经常奇怪,云风还非常年轻,他...

Global site tag (gtag.js) - Google Analytics