求大神帮我看看我的金有谦电脑壁纸配置怎么样,谦容性怎么样。

今天看啥 热点:
Log4j 2.0在开发中的高级使用详解—读取配置文件(六),log4j使用详解
log4j中配置日志文件存放的位置不一定在src下面,即根目录下。这个时候我们需要解决如何加载配置文件的问题。在log4j1.x中解决的方法就比较多了。如:PropertyConfigurator.configure();和DOMConfigurator.configure ();这两种方法读取。而在log4j2.x当中,这两个类都已经不存在了。这个时候我们该如何去加载配置文件呢?
答案也很简单,就是log4j2.x的版本给我提供了ConfigurationSource和Configurator这两个类。我们可以使用它们进行手动的加载任意位置的配置文件信息。
我就主要介绍三种方法:log4j 2读取配置文件的三种方法。
log4j 2读取的配置文件可以分为三类:src下的配置文件、绝对路径的配置文件、相对路径的配置文件。我们一一给例子。直接看代码:package com.herman.
import java.io.F
import java.io.FileInputS
import java.net.URL;
import org.apache.logging.log4j.LogM
import org.apache.logging.log4j.L
import org.apache.logging.log4j.core.config.ConfigurationS
import org.apache.logging.log4j.core.config.C
public class ConfigTest {
private static Logger logger = LogManager.getLogger(ConfigTest.class);
* log4j 2读取配置文件
* log4j 2读取的配置文件可以分为三类:src下的配置文件、绝对路径的配置文件、相对路径的配置文件
加载src下的配置文件
public static void test0(){
//src下的配置文件会默认的被log4j的框架加载,我们就不显示的加载了
//直接测试
(&我打印了.......&);
//输出内容
// 15:49:30,229 INFO
[main] test.ConfigTest (ConfigTest.java:18) - 我打印了.......
绝对路径的配置文件
public static void test1(){
//我们将log4j2.xml放在D盘下
//这是需要手动的加载
//绝对路径配置文件
ConfigurationS
public ConfigurationSource(InputStream stream) throws IOException 构造函数
source = new ConfigurationSource(new FileInputStream(&D:\\log4j2.xml&));
//方法2 使用 public ConfigurationSource(InputStream stream, File file)构造函数
File config=new File(&D:\\log4j2.xml&);
source = new ConfigurationSource(new FileInputStream(config),config);
//方法3 使用 public ConfigurationSource(InputStream stream, URL url) 构造函数
String path=&D:\\log4j2.xml&;
source = new ConfigurationSource(new FileInputStream(path),new File(path).toURL());
//source.setFile(new File(&D:\log4j2.xml&));
//source.setInputStream(new FileInputStream(&D:\log4j2.xml&));
Configurator.initialize(null, source);
Logger logger = LogManager.getLogger(ConfigTest.class.getName());
logger.trace(&trace...&);
logger.debug(&debug...&);
(&info...&);
logger.warn(&warn...&);
logger.error(&error...&);
logger.fatal(&fatal...&);
//一下是运行效果
/* 16:03:07,331 DEBUG [main] test.ConfigTest (ConfigTest.java:42) - debug...
16:03:07,331 INFO
[main] test.ConfigTest (ConfigTest.java:43) - info...
16:03:07,331 WARN
[main] test.ConfigTest (ConfigTest.java:44) - warn...
16:03:07,331 ERROR [main] test.ConfigTest (ConfigTest.java:45) - error...
16:03:07,331 FATAL [main] test.ConfigTest (ConfigTest.java:46) - fatal...*/
} catch (Exception e) {
e.printStackTrace();
相对路径的配置文件加载
public static void test2(){
//这里需要注意路径中不要出现中文和空格,如果存在中文,请使用url转码
ConfigurationS
使用getResource()
String path=&/com/herman/config/log4j2.xml&;
URL url=ConfigTest.class.getResource(path);
source = new ConfigurationSource(new FileInputStream(new File(url.getPath())),url);
Configurator.initialize(null, source);
//方法2 使用System.getProperty
String config=System.getProperty(&user.dir&);
source = new ConfigurationSource(new FileInputStream(config+&\\src\\com\\herman\\config\\log4j2.xml&));
Configurator.initialize(null, source);
//输出内容
/* 16:32:19,746 DEBUG [main] test.ConfigTest (ConfigTest.java:53) - debug...
16:32:19,746 INFO
[main] test.ConfigTest (ConfigTest.java:54) - info...
16:32:19,746 WARN
[main] test.ConfigTest (ConfigTest.java:55) - warn...
16:32:19,746 ERROR [main] test.ConfigTest (ConfigTest.java:56) - error...
16:32:19,746 FATAL [main] test.ConfigTest (ConfigTest.java:57) - fatal...*/
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) {
//test0();
//test1();
很简单吧!欢迎大家关注我的个人博客!!!!
如有不懂,疑问或者欠妥的地方,请加QQ群: & 进行反馈,共同学习!
??1.???????????????? 配置文件的加载是在第一次使用,因此在系统工程第一次使用log4j的时候就要指明加载的配置文件的路径??2.???????????????? 在linux服务器上使用的是相对路径,可以指明配置文件的方法??第一种方式://指明配置文件的加载目录加载.properties文件PropertyConfigurator.configure(&E://log4j.properties&);??第二种方式:/**?????? ??*初始化log4j配置信息?????? ??*@throwsException?????? ??*/?????? publicstaticvoid initLog4j() throws Exception?????? {???????????? FileInputStream istream =???????????? try???????????? {???????????????????? Properties props = new Properties();//指明了获取配置文件的路径???????????????????? istream = new FileInputStream(&conf/log4j.properties&);???????????????????? props.load(istream);//从输入流中读取属性列表???????????????????? PropertyConfigurator.configure(props);???????????? } catch (Exception ex)???????????? {???????????????????? log.error(&initLog4j.error:&, ex);???????????????????? thrownew Exception(ex);???????????? } finally???????????? {???????????????????? istream.close();???????????? }?????? }??使用上面的方法可以实现动态的添加配置信息如何实现动态的指定Log存放的路径,即不用写死?
问错地方了,这个应该到JAVA的板块提问
暂无相关文章
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&
WEB前端教程最近更新> log4j2 配置详解及使用范例
log4j2 配置详解及使用范例
相关推荐:我的项目是基于maven的web项目,应用了log4j2,在main方法中测试的是可以控制台和日志输出,但是在项目中只有控制台输出,没有日志记录,望大神指点
最近项目需求需要将log4j1.2 升级到log4j2,摸索了好久,得出一点经验给大家分享。1.log4j2 官网下载最新jar包(目前log2j2都是beta版)导入入log4j-api-2.0-beta5.jar和log4j-core-2.0-beta5.jar。2.配置文件 log4j2的配置文件后缀名只能为.xml, .json或者 .jsn,在默认的情况,系统选择configuration文件的优先级如下:1.classpath下名为 log4j2-test.json 或者log4j2-test.jsn文件2.classpath下名为log4j2-test.xml3.classpath下名为 log4j2.json 或者log4j2.jsn文件4.classpath下名为log4j2.xml所以建议配置文件为log4j2.xml,下面以此为例:log4j2.xml&?xml version=&1.0& encoding=&UTF-8&?&&Configuration status=&warn&&&Appenders&&Console name=&Console& target=&SYSTEM_OUT&&&PatternLayout pattern=&%d [%t] %-5p [%c] - %m%n&/&&/Console&&RollingRandomAccessFile name=&DebugAppender& fileName=&./logs/lsp_admin_debug.log& append=&true& filePattern=&./logs/lsp_admin_debug.log.%d{yyyyMMdd}&&&PatternLayout&&Pattern&%d %-5p [%c] %m%n&/Pattern&&/PatternLayout&&Policies&&TimeBasedTriggeringPolicy interval=&24& modulate=&true&/&&/Policies&&ThresholdFilter level=&INFO&onMatch=&DENY&onMismatch=&ACCEPT&/&&ThresholdFilter level=&DEBUG& onMatch=&ACCEPT&onMismatch=&DENY&/&&/RollingRandomAccessFile&&RollingRandomAccessFilename=&FILE& fileName=&/opt/lspv2/lsp_app/logs/lsp_app.log& append=&true& filePattern=&/opt/lspv2/lsp_app/logs/lsp_app.log.%d{yyyyMMdd}&&&PatternLayout&&Pattern&%d %-5p [%c] %m%n&/Pattern&&/PatternLayout&&Policies&&TimeBasedTriggeringPolicyinterval=&24&modulate=&true&/&&/Policies&&/RollingRandomAccessFile &&/Appenders&&Loggers&&logger name=&com.ericsson.lsp.service.sim&相关推荐:stone的log4j配置详解Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件配置参数实例如下:log4j.rootLog level=&INFO& additivity=&false&&&appender-ref ref=&Console& /&&appender-ref ref=&FILE& /&&appender-ref ref=&Event.error& /&&/logger&&root level=&Info&&&appender-ref ref=&Console& /&&appender-ref ref=&DebugAppender& /&&/root&&/Loggers&&/Configuration&1.首先介绍loggers标签,用于定义logger的lever和所采用的appender,其中appender-ref必须为先前定义的appenders的名称,例如,此处为Console。那么log就会以appender所定义的输出格式来输出logroot标签为log的默认输出形式,如果一个类的log没有在loggers中明确指定其输出lever与格式,那么就会采用root中定义的格式解析:如上面的例子中,com.ericsson.lsp.service.sim中的所有类,都会按照console和FILE的appender来输出,而没有定义log的类,都按照root默认的来输出。2.再来介绍下Appenders标签,里面放各种扩展组件,主要类型有 1.ConsoleAppender输出结果到控制台2.FileAppender输出结果到指定文件3.RollingFileAppender同样输出结果到文件,区别是用一个buffer,因此速度会快点。还有其他的 FlumeAppender,JDBCAppender 等等,但是我们最常用的就是前面三者了。介绍下RollingRandomessFile 的相关属性: name:表示该appender的名称 fileName:表示输出的文件的路径 append:是否追加,true表示追加内容到所在的日志,false表示每次都覆盖filePattern:表示当日志到达指定的大小或者时间,产生新日志时,旧日志的命名路径。PatternLayout:和log4j1一样,指定输出日志的格式,具体代表的意思见前面的博客中Policies:策略,表示日志什么时候应该产生新日志,可以有时间策略和大小策略等,上面使用的是时间策略,每隔24小时产生新的日志文件ThresholdFilter :过滤器,log4j2中有很多的filter,但是没有仔细研究,需要的时候再看上文中的ThresholdFilter filter 指定了输出的最低级别,如将输出debug以及debug级别以上的,但是需求只需要输出debug级别的,所以加上下列filter 但是,这样的效果是输出debug和info两个级别的日志,所以换下两个filter的顺序就好了。当然还有许多其他的配置,可以自己到官网查看http://logging.apache.org/log4j/2.x/manual/appenders.html3.使用实例import org.apache.logging.log4j.LogMimport org.apache.logging.log4j.Lpublic class Test {private static Logger logger = LogManager.getLogger(&HelloWorld&);public static void main(String[] args){(&hello,world&);Test.logger.error(&There is a error here&);}}获取logger换了一种方式,通过logManager获取logger,其他与log4j1一样,正常使用本文出自 “bulajunjun” 博客,请务必保留此出处http://1
最近项目需求需要将log4j1.2 升级到log4j2,摸索了好久,得出一点经验给大家分享。1.log4j2 官网下载最新jar包(目前log2j2都是beta版)导入入log4j-api-2.0-beta5.jar和log4j-core-2.0-beta5.j...
------分隔线----------------------------
相关阅读排行
相关最新文章
Copyright 2012- ( Coin163 ) All Rights Reserved &&Log4j配置详解之log4j.xml - IT民工 - ITeye技术网站
博客分类:
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
一、log4j.jar包下载地址:
二、配置文件类型:log4j配置文件可以是log4j.xml也可以是log4j.properties
log4j.xml配置说明
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&
&log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' &
&appender name="myConsole" class="org.apache.log4j.ConsoleAppender"&
&layout class="org.apache.log4j.PatternLayout"&
&param name="ConversionPattern"
value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" /&
&!--过滤器设置输出的级别--&
&filter class="org.apache.log4j.varia.LevelRangeFilter"&
&param name="levelMin" value="debug" /&
&param name="levelMax" value="warn" /&
&param name="AcceptOnMatch" value="true" /&
&/appender&
&appender name="myFile" class="org.apache.log4j.RollingFileAppender"&
&param name="File" value="D:/output.log" /&&!-- 设置日志输出文件名 --&
&!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --&
&param name="Append" value="true" /&
&param name="MaxBackupIndex" value="10" /&
&layout class="org.apache.log4j.PatternLayout"&
&param name="ConversionPattern" value="%p (%c:%L)- %m%n" /&
&/appender&
&appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender"&
&param name="File" value="E:/activex.log" /&
&param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /&
&layout class="org.apache.log4j.PatternLayout"&
&param name="ConversionPattern"
value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" /&
&/appender&
&!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制--&
&logger name="com.runway.bssp.activeXdemo" additivity="false"&
&priority value ="info"/&
&appender-ref ref="activexAppender" /&
&!-- 根logger的设置--&
&priority value ="debug"/&
&appender-ref ref="myConsole"/&
&appender-ref ref="myFile"/&
&/log4j:configuration&
(1). 输出方式appender一般有5种:
org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
(2). 日记记录的优先级priority,优先级由高到低分为
OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。
(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):
输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)
输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
输出代码指定信息,如info(“message”),输出message
输出优先级,即 FATAL ,ERROR 等
输出从启动到显示该log信息所耗费的毫秒数
输出产生该日志事件的线程名
log4j.xml配置文件节点详解
xml declaration and DTD
xml配置文件的头部包括两个部分:xml声明和DTD声明。头部的格式如下:
&?xml version="1.0" encoding="UTF-8" ?&
&!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&
log4j:configuration (root element)
xmlns:log4j [#FIXED attribute] : 定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/"
appender [* child] : 一个appender子元素定义一个日志输出目的地
logger [* child] : 一个logger子元素定义一个日志写出器
root [? child] : root子元素定义了root logger
appender元素定义一个日志输出目的地。
name [#REQUIRED attribute] : 定义appender的名字,以便被后文引用
class [#REQUIRED attribute] : 定义appender对象所属的类的全名
param [* child] : 创建appender对象时传递给类构造方法的参数
layout [? child] : 该appender使用的layout对象
layout元素定义与某一个appender相联系的日志格式化器。
class [#REQUIRED attribute] : 定义layout对象所属的类的全名
param [* child] : 创建layout对象时传递给类构造方法的参数
logger元素定义一个日志输出器。
name [#REQUIRED attribute] : 定义logger的名字,以便被后文引用
additivity [#ENUM attribute] : 取值为"true"(默认)或者"false",是否继承父logger的属性
level [? child] : 定义该logger的日志级别
appender-ref [* child] : 定义该logger的输出目的地
root元素定义根日志输出器root logger。
param [* child] : 创建root logger对象时传递给类构造方法的参数
level [? child] : 定义root logger的日志级别
appender-ref [* child] : 定义root logger的输出目的地
level元素定义logger对象的日志级别。
class [#IMPLIED attribute] : 定义level对象所属的类,默认情况下是"org.apache.log4j.Level类
value [#REQUIRED attribute] : 为level对象赋值。可能的取值从小到大依次为"all"、"debug"、"info"、"warn"、"error"、"fatal"和"off"。当值为"off"时表示没有任何日志信息被输出
param [* child] : 创建level对象时传递给类构造方法的参数
appender-ref
appender-ref元素引用一个appender元素的名字,为logger对象增加一个appender。
ref [#REQUIRED attribute] : 一个appender元素的名字的引用
appender-ref元素没有子元素
param元素在创建对象时为类的构造方法提供参数。它可以成为appender、layout、filter、errorHandler、level、categoryFactory和root等元素的子元素。
name and value [#REQUIRED attributes] : 提供参数的一组名值对
param元素没有子元素
在xml文件中配置appender和layout
创建不同的Appender对象或者不同的Layout对象要调用不同的构造方法。可以使用param子元素来设定不同的参数值。
创建ConsoleAppender对象
ConsoleAppender的构造方法不接受其它的参数。
... ... ... ...
&appender name="console.log" class="org.apache.log4j.ConsoleAppender"&
&layout ... &
&/appender&
... ... ... ...
创建FileAppender对象
可以为FileAppender类的构造方法传递两个参数:File表示日志文件名;Append表示如文件已存在,是否把日志追加到文件尾部,可能取值为"true"和"false"(默认)。
... ... ... ...
&appender name="file.log" class="org.apache.log4j.FileAppender"&
&param name="File" value="/tmp/log.txt" /&
&param name="Append" value="false" /&
&layout ... &
&/appender&
... ... ... ...
创建RollingFileAppender对象
除了File和Append以外,还可以为RollingFileAppender类的构造方法传递两个参数:MaxBackupIndex备份日志文件的个数(默认是1个);MaxFileSize表示日志文件允许的最大字节数(默认是10M)。
... ... ... ...
&appender name="rollingFile.log" class="org.apache.log4j.RollingFileAppender"&
&param name="File" value="/tmp/rollingLog.txt" /&
&param name="Append" value="false" /&
&param name="MaxBackupIndex" value="2" /&
&param name="MaxFileSize" value="1024" /&
&layout ... &
&/appender&
... ... ... ...
创建PatternLayout对象
可以为PatternLayout类的构造方法传递参数ConversionPattern。
... ... ... ...
&layout class="org.apache.log4j.PatternLayout&
&param name="Conversion" value="%d [%t] %p - %m%n" /&
... ... ... ...
验证中.....
浏览 54489
zengxiantao
浏览: 68933 次
来自: 天津log4j配置:如何在配置文件中设置将log4j日 志保存到当前WEB应用的某个目录?
我的图书馆
log4j配置:如何在配置文件中设置将log4j日 志保存到当前WEB应用的某个目录?
志保存到当前应用的某个目录?傲博技术知识库&&?:http:/我在很多资料里面都只看到通过绝对路径设置日志的保存路径,现在我想请教各位的是如何在配置文件中设置将日志保存到web应用中的某个目录,不通过绝对路径的情况下。ding我也在找这方面的问题 这个在log4j中,可以使用占位符变量来表示你的日志信息存放的目录。楼上的说得很虚啊,能不能举个例子法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替。这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。法二、可以使用服务器环境变量log4j的配置文件支持服务器的vm的环境变量,格式类似${catalina.home}log4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=${catalina.home}/logs/logs_tomcat.loglog4j.appender.R.MaxFileSize=10KB其中的${catalina.home}并非系统的环境变量,这个环境变量就不需要在Windows系统的环境变量中设置。之所以这样,你可以看看tomcat\bin\catalina.bat(startup,shutdown都是调用这个)里面自带有-Dcatalina.home= "%CATALINA_HOME%" 。继承这个思想,所以你也可以自己设定一个参数-Dmylog.home="D:/abc/log"到对应的服务器启动的vm参数中法三、通过servlet初始化init()方法中加载file属性实现相对路径具体实现:做一个servlet,在系统加载的时候,就把properties的文件读到一个properties文件中.那个file的属性值(我使用的是相对目录)改掉(前面加上系统的根目录),让后把这个properties对象设置到propertyConfig中去,这样就初始化了log的设置.在后面的使用中就用不着再配置了一般在我们开发项目过程中,log4j日志输出路径固定到某个文件夹,这样如果我换一个环境,日志路径又需要重新修改,比较不方便,目前我采用了动态改变日志路径方法来实现相对路径保存日志文件(1).在项目启动时,装入初始化类:public class Log4jInit extends HttpServlet {static Logger logger = Logger.getLogger(Log4jInit.class);public Log4jInit() {}public void init(ServletConfig config) throws ServletException {String prefix = config.getServletContext().getRealPath("/");String file = config.getInitParameter("log4j");String filePath = prefix +Properties props = new Properties();try {FileInputStream istream = new FileInputStream(filePath);props.load(istream);istream.close();//toPrint(props.getProperty("log4j.appender.file.File"));String logFile = prefix + props.getProperty("log4j.appender.file.File");//设置路径props.setProperty("log4j.appender.file.File",logFile);PropertyConfigurator.configure(props);//装入log4j配置信息} catch (IOException e) {toPrint("Could not read configuration file [" + filePath + "].");toPrint("Ignoring configuration file [" + filePath + "].");}}public static void toPrint(String content) {System.out.println(content);}}实际上log4j的配置文件log4j.properties如为默认名,可放置在JVM能读到的classpath里的任意地方,一般是放在WEB- INF/classes目录下。当log4j的配置文件不再是默认名,则需要另外加载并给出参数,如上“ropertyConfigurator.configure(props);//装入log4j配置信息”(2).Web.xml中的配置&servlet&&servlet-name&log4j-init &/servlet-name&&servlet-class&Log4jInit &/servlet-class&&init-param&&param-name&log4j &/param-name&&param-value&WEB-INF/classes/log4j.properties &/param-value&&/init-param&&load-on-startup&1 &/load-on-startup&&/servlet&注意:上面的load-on-startup设为0,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的properties子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便。本文来源于IT民工&&, 原文地址:
发表评论:
TA的最新馆藏[转]&[转]&

我要回帖

更多关于 金有谦电脑壁纸 的文章

 

随机推荐