谁有小右的qq号?

log4j.properties的放置位置 -
- ITeye技术网站
今天和项目经理讨论了下log4j.properties具体的放置位置,我开始赞成直接放置在classpath下面,这样方便管理,对性能应该也有所提高,但经理从服务器管理者的角度告诉我这种做法的缺陷:更新log4j.properties时必然要重启应用,灵活性会降低。比如我要将输出控制由INFO 到 DEBUG 如果能配置到外面则方便很多。他还说了如果要重启某个应用需要重启多个服务器,因为做了集群,但我认为这个是危言耸听,做集群能没有同步么。
1.log4j.properties放置在classpath下面。
优点:方便管理,节省资源。
缺点:灵活性差。
2.log4j.properties放置在外部。
有点:灵活性高。
缺点:需要建立相关的文档、相对浪费资源。
如何配置在外面:
Logger m_log =
public ETrafficPlanService(){
PropertyConfigurator.configure("data//config//log4j//log4j_etraffic.properties");
m_log = Logger.getLogger(ETrafficPlanService.class);
m_log.debug("debug test...........");
浏览 11407
浏览: 76163 次
来自: 北京
不错 ,真的不错 对初学者来说!
~.~ 源码的话随便找个反编译的工具就能看到了吧
推荐jd- ...
能不能把原码也贡献出来
蛮不错的,尤其去除了example和垃圾备注
学习了,但是D:\tomcat210log这个路径必须先手动创 ...Java基础(33)
最近在开发过程使用到log4j,在使用过程中遇到一个问题,如下:
log4j:WARN No appenders could be foundfor logger (com.jc.UpgradeImage.UpgradeImage).
log4j:WARN Please initialize the log4jsystem properly.
log4j:WARN Seehttp://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
import org.apache.log4j.L
importorg.apache.log4j.PropertyC
public class UpgradeImage {
privatestatic Logger logger = Logger.getLogger(UpgradeImage.class);
publicstatic void main(String[] args) {
//TODO Auto-generated method stub
logger.debug(&debug&);
(&This is info
message.&);
经过查询资料,发现有两种解决方式,现总结如下:
<span style="color:#.修改源代码,增加一行代码,
package com.jc.UpgradeI
import org.apache.log4j.L
import org.apache.log4j.PropertyC
public class UpgradeImage {
private static Logger logger =
Logger.getLogger(UpgradeImage.class);
public static void main(String[] args) {
// TODO Auto-generated method stub
&span style=&color:#FF6666;&&PropertyConfigurator.configure(&log4j.properties&);&/span&
logger.debug(&debug&);
(&This is info
message.&);
2.不修改源代码,把log4j.properties放到src目录下。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:27203次
排名:千里之外
原创:38篇
转载:69篇
(6)(1)(11)(7)(4)(3)(10)(2)(1)(10)(8)(1)(6)(10)(3)(15)(5)(2)(2)log4j 日志文件存放位置的配置 - 我爱技术男-江龙 - ITeye技术网站
博客分类:
今天重点把日志功能理解了一下,对于一个web网站来说,日志是很重要的,特别是那些不太好的服务器提供商,(xinet),我需要把日志存放在webroot下。
怎么存放呢,
项目里要导入什么包,你知道的。。。
将log4j。properties放到web-inf下,当然这么放的话,浏览器上需要请求出能访问得到了
我的log4j.properties里这么写的
log4j.rootLogger=ERROR,zc511
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.logger.zc511=ERROR
log4j.appender.zc511.Encoding=UTF-8
log4j.appender.zc511=org.apache.log4j.DailyRollingFileAppender
log4j.appender.zc511.datePattern=.yyyy-MM-dd
log4j.appender.zc511.Threshold = ERROR
log4j.appender.zc511.append=true
log4j.appender.zc511.File=${app1.root}/WEB-INF/logs/error.log
log4j.appender.zc511.layout=org.apache.log4j.PatternLayout
log4j.appender.zc511.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}]
%l%n - %m%n
web.xml下如下配置
&context-param&
&param-name&log4jConfigLocation&/param-name&
&param-value&WEB-INF/log4j.properties&/param-value&
&/context-param&
&context-param&
&param-name&webAppRootKey&/param-name&
&param-value&app1.root&/param-value&
&/context-param&
&context-param&
&param-name&log4jRefreshInterval&/param-name&
&param-value&60000&/param-value&
&/context-param&
另外在这里还要配置监听器,因为没有放置在src目录下。
&listener&
&listener-class&org.springframework.web.util.Log4jConfigListener&/listener-class&
&/listener&
这样运行的时候,将会在/WEB-INF/logs/error.log下生成日志文件
当然这里我也不理解的地方,我飘红色的地方,为什么要那么设置呢,在一个tomcat下如果有多个项目那么这个红色的地方名字(webAppRootKey)不能重复。所以我在这里给了个别的名字app1.root
那么这个名字到底是什么意思呢?这就请教那位大虾了。。。
浏览: 63002 次
来自: 杭州
Array.prototype.distinct = func ...
讲的很好!!赞一个,嗯是图片向上滚动了-100px;这就好理解 ...log4j.properties配置文件介绍 - JAVA 笔记 - ITeye技术网站
博客分类:
1. log4j.properties的简单例子(可以满足一般要求)
如下的例子将日志输出到控制台和日子文件framework.log,每天产生一个日子文件,并且指出只有com.may包下的文件才产生日志。
引用
### set log levels ###
log4j.rootLogger=DEBUG,A1,A2
### direct messages to file framework.log ###
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=framework.log
log4j.appender.A2.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p]%d%n%l%n%m%n
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Target=System.out
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p(%10c{1}) %m%n
### application log config ###
.may=DEBUG,A1,A2
2. log4j.properties基本格式
引用
#配置根Logger
log4j.rootLogger& =&& [ level ]&& ,& appenderName1 ,& appenderName2 ,& …
#配置日志信息输出目的地appenderName
log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1& =& value1
  log4j.appender.appenderName.optionN& =& valueN
#配置日志信息的格式(布局)
log4j.appender.appenderName.layou=fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1& =& value1
  log4j.appender.appenderName.layout.optionN& =& valueN&
3. 格式解说(参考如上的例子和格式)
3.1. [level] 是日志输出级别,共有5级,值越小级别越高
引用
FATAL&&&&& 0&
ERROR&&&&& 3&
WARN&&&&&& 4&
INFO&&&&&& 6&
DEBUG&&&&& 7
3.2. appender 为日志输出目的地,Log4j提供的appender有以下5种
引用
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.3. layout:日志输出格式,Log4j提供的layout有以下4种
引用
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
3.4. 打印参数: 打印格式格式化日志信息
引用
&& %m&& 输出代码中指定的消息
  %p&& 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r&& 输出自应用启动到输出该log信息耗费的毫秒数
  %c&& 输出所属的类目,通常就是所在类的全名
  %t&& 输出产生该日志事件的线程名
  %n&& 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
  %d&& 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比
&&&&&&&&& 如:%d{yyy MMM dd HH:mm:ss , SSS},  
&&& %l&& 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
浏览: 78147 次
来自: 南京
姐姐,怎么不用代码编辑器...这样看好难受
111111[size=xx-large][/size]

我要回帖

 

随机推荐