1. 如何编写log4j.properties文件,配置日志信息
第一步:在工程中加入log4j所使用的jar文件
1:项目 >; 属性 :弹出项目的属性窗口
2:Java构建路径>;?库>;?添加外部JAR:弹出选择JAR的窗口
3:通过选择JAR的窗口,找到log4j-1.2.x.jar,并确认
4:回到项目的属性窗口,点击确定
第二步:创建log4j.properties文件
1:选择欲使用log4j的项目>;?右键点击src >;?新建>;?其他 :弹出选择向导窗口
2:在选择向导窗口中,选择常规?>; 文件?>; 下一步:弹出新建文件的窗口
3:在新建文件窗口中,输入文件名log4j.properties ? 完成:创建工作结束
第三步:使用log4j记录日志信息
import org.apache.log4j.Logger;
public class Log4j {
public static void main(String[] args) {
Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());//获取日志记录器,这个记录器将负责控制日志信息
try {
logger.debug("设置教员的编号。");//使用Logger对象的debug、info方法输出日志信息
} catch (IllegalArgumentException ex) {
logger.info(ex.getMessage());//使用Logger对象的debug、info方法输出日志信息
}
}
}
第四步:编写log4j.properties文件,配置日志信息
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日志信息将写到控制台
log4j.appender.stdout.Target=System.out//信息打印到System.out上
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n//指定输出格式:显示日期和log信息
### 把日志信息输出到文件:accp.log ###
log4j.appender.file=org.apache.log4j.FileAppender//日志信息将写到文件中
log4j.appender.file.File=accp.log//指定日志输出的文件名
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n//指定输出格式:显示日期,日志发生位置和日志信息
### 设置优先级别、以及输出源 ###
log4j.rootLogger=debug, stdout, file//设置优先级别为debug、
日志被输出到多个输出源
注:优先级从高到低分别是ERROR、WARN、INFO、DEBUG
在此处,如果优先级别设为info,那么使用debug方法打印的日志信息将不被输出
2. log4j.properties 的作用是什么
一、log4j.properties 作用 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言 分布式系统得到一个统一一致的日志组件模块。
而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。(转自:) 二、log4j.properties 使用方法.参数意义说明:输出级别的种类 ERROR、WARN、INFO、DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息 配置日志信息输出目的地 log4j.appender.appenderName = fully.qualified.name.of.appender.class1.org.apache.log4j.ConsoleAppender(控制台)2.org.apache.log4j.FileAppender(文件)3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 配置日志信息的格式 log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 控制台选项 Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。Target=System.err:默认情况下是:System.out,指定输出控制台 FileAppender 选项 Threshold=DEBUF:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。RollingFileAppender 选项 Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n 日志信息格式中几个符号所代表的含义: -X号: X信息输出时左对齐; %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL, %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 %r: 输出自应用启动到输出该log信息耗费的毫秒数 %c: 输出日志信息所属的类目,通常就是所在类的全名 %t: 输出产生该日志事件的线程名 %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。
举例:Testlog4.main (TestLog4.java:10) %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 %%: 输出一个"%"字符 %F: 输出日志消息产生时所在的文件名称 %L: 输出代码中的行号 %m: 输出代码中指定的消息,产生的日志具体信息 %n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。
如: 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。
三、常用配置Demo# DEBUG # Global logging configuration log4j.rootLogger=。
3. log4j的配置文件properties应该放在什么地方
自动加载配置文件:
(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解。log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。然后加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。如果将配置文件放到了config文件夹下,在build Path中设置下就好了。
若要手动加载配置文件如下:
(1)PropertyConfigurator.configure("log4j.properties") 默认读取的是项目根目录的路径。此时的log4j.properties要放在项目目录下。
如图,log4j.properties和src是同级目录,同在根目录下
(2)一般,一个java项目会有很多的配置文件,建议把所有的配置文件放到一个文件夹下,
例如,放到config文件夹。那么在读取这些配置文件的时候要加上子目录名称。
如图在项目目录下创建config文件夹(注意:不是在src文件下),此时,config和src是同级目录
这时,读取路径改为:
PropertyConfigurator.configure("config/log4j.properties");
(3):如果不手动设置,不用人为的写加载log.properties文件的代码时,直接放src目录下,千万要记得,如果新建一个JAVA项目,src文件要弄成原文件包才行
我就是用的这个
(4)项目打成jar包时,一般不会把配置文件也打进jar包。
如果是第一种方式,直接将log4j.properties文件和生成的HelloWorld.jar放在同一目录下,项目就能顺利读取配置文件。
如果是第二种方式,要建立config文件夹,把配置文件放入其中,再将config文件和生成的HelloWorld.jar放在同一目录下,项目就能顺利读取配置文件。
4. 如何创建log4j.properties
File---->new---->File----->log4j.properties----->
复制下面的代码,保存在log4j.properties的Source里
# Root Logger
log4j.rootLogger=DEBUG,console,file
#\u81EA\u5B9A\u4E49\u65E5\u5FD7\u8BB0\u5F55\u5668\uFF08\u533A\u5206\u5927\u5C0F\u5199\uFF09
#\u5BF9\u6307\u5B9A\u547D\u540D\u7A7A\u95F4\u4E2D\u7684\u8BED\u53E5\u8FDB\u884C\u65E5\u5FD7\u8BB0\u5F55
#log4j.logger.com.company.mybatisdemo.dao.MyadminDAO=DBUG
#\u5BF9\u6307\u5B9A\u8BED\u53E5\u8FDB\u884C\u65E5\u5FD7\u8BB0\u5F55
#log4j.logger.com.company.mybatisdemo.dao.MyadminDAO.get=DBUG
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%5p [%t] - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=log.html
log4j.appender.file.layout=org.apache.log4j.HTMLLayout
5. log4j.properties文件是否可以生成
就我而言,到目前为止还没有发现可以自动生成log4j.properties的方法。因为log4j.properties看似很多,其实学懂了理解起来并不难,甚至比用什么工具生成还要简单,手写log4j.properties无非就是copy+更改而已。
所以先是建议你去学习一下log4j.properties配置文件,然后给你一个通用的配置文件(是把信息输出到控制台的),等你看懂了在这个基础上增加
log4j.rootLogger=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.console.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
6. properties文件怎么写
InputStream in = 类名.class.getClassLoader().getResourceAsStream("propertes名字.properties");
Properties prop = new Properties();
prop.load(in)
oracleDb_Driver = prop.getProperty("oracleDb_Driver-properties里面的字段");
7. 如何在log4j.properties文件中使用相对路径
log4j是一个应用非常广泛的Java日志组件。
我们可以方便的借助它将日志信息输出到控制台、文件、数据库等甚至可以通过扩展以流的方式输出到任何存储媒介中。本文要解决的问题:如何在log4j.properties文件中使用相对路径?缺省情况下我们只能在log4j.properties中配置绝对路径。
这样以来,我们在系统部署、开放环境移植等环节就会带来很大的不便,需要将路径改来改去。因此,我们可以使用下面的办法来实现在log4j.properties中使用相对路径:1、实现一个Servlet/** * Log4J初始化* @author XiongChun * @since 2011-04-26 */ public class Log4jInitServlet extends HttpServlet {/*** Servlet初始化*/ public void init(ServletConfig config) throws ServletException { String root = config.getServletContext().getRealPath("/"); String log4jLocation = config.getInitParameter("log4jLocation"); System.setProperty("webRoot", root); if (G4Utils.isNotEmpty(log4jLocation)) { PropertyConfigurator.configure(root + log4jLocation); } } }2、web.xml加载这个servlet<!-- 配置Log4j -->
8. log4j2.xml怎么调用properties
自动加载配置文件:
(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解。log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。然后加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。如果将配置文件放到了config文件夹下,在build Path中设置下就好了。
若要手动加载配置文件如下:
(1)PropertyConfigurator.configure("log4j.properties") 默认读取的是项目根目录的路径。此时的log4j.properties要放在项目目录下。
如图,log4j.properties和src是同级目录,同在根目录下
(2)一般,一个java项目会有很多的配置文件,建议把所有的配置文件放到一个文件夹下,
例如,放到config文件夹。那么在读取这些配置文件的时候要加上子目录名称。
如图在项目目录下创建config文件夹(注意:不是在src文件下),此时,config和src是同级目录
这时,读取路径改为:
PropertyConfigurator.configure("config/log4j.properties");
(3):如果不手动设置,不用人为的写加载log.properties文件的代码时,直接放src目录下,千万要记得,如果新建一个JAVA项目,src文件要弄成原文件包才行
我就是用的这个
(4)项目打成jar包时,一般不会把配置文件也打进jar包。
如果是第一种方式,直接将log4j.properties文件和生成的HelloWorld.jar放在同一目录下,项目就能顺利读取配置文件。
如果是第二种方式,要建立config文件夹,把配置文件放入其中,再将config文件和生成的HelloWorld.jar放在同一目录下,项目就能顺利读取配置文件。
9. log4j.properties 放在哪
我原来通常都是把 log4j.properties放在WEB-INF目录下, web.xml相应的定义为:
但是如果你要进行JUnit Test,在运行TestCase时,就会发生错误:log4j:WARN No appenders could be found for logger log4j:WARN Please initialize the log4j system properly.那是因为在classpath里找不到log4j.properties,因此我把log4j.properties改放在WEB-INF/classes目录下,web.xml相应的定义改为:
转载请注明出处育才学习网 » log4j.properties怎么写