??xml version="1.0" encoding="utf-8" standalone="yes"?> Q?Q用客户端连接到数据库,执行select * from v$instance Q?Qselect * from product_component_version Q?Q或查询V$VERSION查看lgU信?/span> %p 输出优先U,即DEBUGQINFOQW(xu)ARNQERRORQFATAL
N存放的位|?
eclipse_home\plugins\org.eclipse.platform_3.2.2.r322_v20070117b\splash.bmp
U色字体不固定,随eclipse的版本不同而不?br />
注:(x)此ؓ(f)转脓(chung)Q不知道原出处,呵呵?/span>
]]>
release 8.1.1.0 [Added]
查看oracle的版本信息有几个Ҏ(gu)
查看version?/span>
]]>
Log4j可以帮助调试Q有时候debug是发挥不?jin)?用的Q和分析Q要下蝲和了(jin)解更详细的内容,q是讉K其官方网站吧Q?/font> http://jakarta.apache.org/log4j ?br />
2、Log4j的概?/strong>
Log4j中有三个主要的组Ӟ它们分别?/font> Logger、Appender和LayoutQLog4j 允许开发h员定义多个LoggerQ每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关pR有一个LoggerUCؓ(f)RootQ它永远存在Q且不能通过名字(g)索或引用Q可以通过Logger.getRootLogger()Ҏ(gu)获得Q其它Logger通过 Logger.getLogger(String name)Ҏ(gu)?br />
Appender则是用来指明所有的log信息存放C么地方,Log4j中支持多UappenderQ如 console、files、GUI components、NT Event Loggers{,一个Logger可以拥有多个AppenderQ也是你既可以Log信息输出到屏q,同时存储C个文件中?br />
Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息?br />
Log4j中将要输出的Log信息定义?U别,依次为DEBUG、INFO、WARN、ERROR和FATALQ当输出Ӟ只有U别高过配置中规定的U别的信息才能真正的输出Q这样就很方便的来配|不同情况下要输出的内容Q而不需要更改代码,q点实在是方便啊?br />
3、Log4j的配|文?/strong>
虽然可以不用配置文gQ而在E序中实现配|,但这U方法在如今的系l开发中昄是不可取的,能采用配|文件的地方一定一定要用配|文件。Log4j支持两种格式的配|文Ӟ(x)XML格式和Java的property格式Q本人更喜欢后者,首先看一个简单的例子吧,如下Q?br />
log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize= 100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
首先Q是讄rootQ格式ؓ(f) log4j.rootLogger=[level],appenderName, ...Q其中level是讄需要输Z息的U别Q后面是appender的输出的目的圎ͼappenderName是指定日志信息输出到哪个地斏V?zhn)可以同时指定多个输出目的地?/font> 配置日志信息输出目的地AppenderQ其语法?br />
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN
Log4j提供的appender有以下几U:(x)
org.apache.log4j.ConsoleAppenderQ控制台Q?br />
org.apache.log4j.FileAppenderQ文Ӟ(j)
org.apache.log4j.DailyRollingFileAppenderQ每天生一个日志文Ӟ(j)
org.apache.log4j.RollingFileAppenderQ文件大到达指定尺寸的时候生新文gQ?br />
org.apache.log4j.WriterAppenderQ将日志信息以流格式发送到L指定的地方)(j)
配置日志信息的格式(布局Q,其语法ؓ(f)Q?br />
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
....
log4j.appender.appenderName.layout.option = valueN
Log4j提供的layout有以下几U:(x)
org.apache.log4j.HTMLLayoutQ以HTML表格形式布局Q,
org.apache.log4j.PatternLayoutQ可以灵zd指定布局模式Q,
org.apache.log4j.SimpleLayoutQ包含日志信息的U别和信息字W串Q,
org.apache.log4j.TTCCLayoutQ包含日志生的旉、线E、类别等{信息)(j)
Log4J采用cMC语言中的printf函数的打印格式格式化日志信息Q打印参数如下:(x) %m 输出代码中指定的消息
%r 输出自应用启动到输出该log信息耗费的毫U数
%c 输出所属的cȝQ通常是所在类的全?
%t 输出产生该日志事件的U程?
%n 输出一个回车换行符QW(xu)indowsq_?#8220;\r\n”QUnixq_?#8220;\n”
%d 输出日志旉点的日期或时_(d)默认格式为ISO8601Q也可以在其后指定格式,比如Q?d{yyy MMM dd HH:mm:ss,SSS}Q输出类|(x)
%l 输出日志事g的发生位|,包括cȝ名、发生的U程Q以?qing)在代码中的行数。D例:(x)Testlog4.main(TestLog4.java:10)
4、Log4j在程序中的?/strong>
要在自己的程序中使用Log4jQ首先需要将commons-logging.jar和logging-log4j-1.2.9.jar导入到构\径中。然后再log4j.properties攑ֈsrc根目录下。这样就可以在程序中使用log4j?jin)。在cM使用log4jQ?/font> 首先声明一个静(rn)态变?/font> Logger logger=Logger.getLog("classname")Q现在就可以使用?jin),用法如下Qlogger.debug("debug message")或者logger.info("info message")Q看下面一个小例子Q?/font>
import com.foo.Bar;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class MyApp {
static Logger logger = Logger.getLogger(MyApp.class.getName());
public static void main(String[] args) {
// BasicConfigurator replaced with PropertyConfigurator.
PropertyConfigurator.configure(args[0]);
logger.info("Entering application.");
Bar bar = new Bar();
bar.doIt();
logger.info("Exiting application.");
}
}
]]>