??xml version="1.0" encoding="utf-8" standalone="yes"?>正在播放国产精品,97超碰在线播放,国产一区二区久久久http://www.aygfsteel.com/asdtiang/category/43557.html交流学习(fn)JAVA zh-cnThu, 14 Jan 2010 16:32:11 GMTThu, 14 Jan 2010 16:32:11 GMT60java E序安装成服?/title><link>http://www.aygfsteel.com/asdtiang/articles/309414.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Thu, 14 Jan 2010 02:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/asdtiang/articles/309414.html</guid><wfw:comment>http://www.aygfsteel.com/asdtiang/comments/309414.html</wfw:comment><comments>http://www.aygfsteel.com/asdtiang/articles/309414.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/asdtiang/comments/commentRss/309414.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/asdtiang/services/trackbacks/309414.html</trackback:ping><description><![CDATA[1、首先到请下载最新版本的Java Service WrapperQ?a target="_blank" _extended="true"><font _extended="true" color="#ff0000">? 我下?/font></a>?br /> 2、准备如下文Ӟ复制到test目录Q这些文件可以从下蝲包中扑ֈQ?br /> wrapper.dll<br /> wrapper.exe<br /> wrapper.jar<br /> 3、编写wrapper.confQ也攑֜同一U目录下面,内容如下<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000;"># Java Application完整路径<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.java.command</span><span style="color: #000000;">=</span><span style="color: #000000;">java<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.java.mainclass</span><span style="color: #000000;">=</span><span style="color: #000000;">org.tanukisoftware.wrapper.WrapperSimpleApp<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />#定义E序q行的classpath<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.java.classpath</span><span style="color: #000000;">.1</span><span style="color: #000000;">=</span><span style="color: #000000;">wrapper.jar<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.java.classpath</span><span style="color: #000000;">.2</span><span style="color: #000000;">=</span><span style="font-weight: bold; color: #800000;">[</span><span style="color: #800000;">jar file/path</span><span style="font-weight: bold; color: #800000;">]</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># Java Library Path (location of Wrapper.DLL or libwrapper.so)<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.java.library.path</span><span style="color: #000000;">.1</span><span style="color: #000000;">=</span><span style="color: #000000;">.<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># Java Additional Parameters<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />#wrapper.java.additional</span><span style="color: #000000;">.1</span><span style="color: #000000;">=</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># Initial Java Heap Size (in MB)<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />#wrapper.java.initmemory</span><span style="color: #000000;">=</span><span style="color: #000000;">3</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># Maximum Java Heap Size (in MB)<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />#wrapper.java.maxmemory</span><span style="color: #000000;">=</span><span style="color: #000000;">64</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># q行的Main Class<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.app.parameter</span><span style="color: #000000;">.1</span><span style="color: #000000;">=</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.console.format</span><span style="color: #000000;">=</span><span style="color: #000000;">PM<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.console.loglevel</span><span style="color: #000000;">=</span><span style="color: #000000;">INFO<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.logfile</span><span style="color: #000000;">=</span><span style="color: #000000;">Beanskt.log<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.logfile.format</span><span style="color: #000000;">=</span><span style="color: #000000;">LPTM<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.logfile.loglevel</span><span style="color: #000000;">=</span><span style="color: #000000;">INFO<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.logfile.maxsize</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.logfile.maxfiles</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.syslog.loglevel</span><span style="color: #000000;">=</span><span style="color: #000000;">NONE<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />#window服务配置<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.console.title</span><span style="color: #000000;">=</span><span style="color: #000000;">samplesvr<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />#服务?br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.ntservice.name</span><span style="color: #000000;">=</span><span style="color: #000000;">samplesvr<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># 昄名称<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.ntservice.displayname</span><span style="color: #000000;">=</span><span style="color: #000000;"> sample  Service<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># 描述<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.ntservice.description</span><span style="color: #000000;">=sample</span><span style="color: #000000;"> Service<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># 依赖?br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.ntservice.dependency</span><span style="color: #000000;">.1</span><span style="color: #000000;">=</span><span style="color: #000000;"><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># 启动模式Q?nbsp; AUTO_START or DEMAND_START<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.ntservice.starttype</span><span style="color: #000000;">=</span><span style="color: #000000;">AUTO_START<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /># 是否交互.<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" />wrapper.ntservice.interactive</span><span style="color: #000000;">=</span><span style="color: #000000;">false<br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="../../Images/OutliningIndicators/None.gif" align="top" /></span></div> <br /> 4、运行测试,安装服务<br /> 》测试运行是否正?br /> wrapper.exe -c wrapper.conf <br /> 》安装服?br /> wrapper.exe -i wrapper.conf <br /> 》卸载服?br /> wrapper.exe -r wrapper.conf <br /> 》启?br /> wrapper.exe -t wrapper.conf <br /> 》停?br /> wrapper.exe -p wrapper.conf <br /> <img src ="http://www.aygfsteel.com/asdtiang/aggbug/309414.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/asdtiang/" target="_blank">asdtiang</a> 2010-01-14 10:38 <a href="http://www.aygfsteel.com/asdtiang/articles/309414.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>netbean快捷?/title><link>http://www.aygfsteel.com/asdtiang/articles/309289.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Wed, 13 Jan 2010 03:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/asdtiang/articles/309289.html</guid><wfw:comment>http://www.aygfsteel.com/asdtiang/comments/309289.html</wfw:comment><comments>http://www.aygfsteel.com/asdtiang/articles/309289.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/asdtiang/comments/commentRss/309289.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/asdtiang/services/trackbacks/309289.html</trackback:ping><description><![CDATA[查找、搜索和替换 <br /> Ctrl-F3 搜烦(ch)位于插入点的?<br /> F3/Shift-F3 在文件中查找下一?上一?<br /> Ctrl-F/H 在文件中查找/替换 <br /> Alt-F7 查找使用实例 <br /> Ctrl-Shift-P 在项目中查找 <br /> Alt-Shift-U 查找使用实例l果 <br /> Alt-Shift-H 关闭搜烦(ch)l果H出昄 <br /> Alt-Shift-L 跌{列表中的下一个(所有文Ӟ(j) <br /> Alt-Shift-K 跌{列表中的上一个(所有文Ӟ(j) <br /> Ctrl-R 重新装入H体 <br /> Alt-U-U 选定内容转换为大?<br /> Alt-U-L 选定内容转换为小?<br /> Alt-U-R 寚w定内容切换大小?<br /> <br /> 在源代码中导?<br /> Alt-Shift-O 转至c?<br /> Alt-Shift-E  转至 JUnit 试 <br /> Alt-O 转至源代?<br /> Alt-G 转至声明 <br /> Ctrl-B 转至实现 <br /> Alt-K/Alt-L 后退/前进 <br /> Ctrl-G 转至?<br /> Ctrl-F2  切换d/删除书签 <br /> F2/Shift-F2  下一?上一个书{?<br /> F12/Shift-F12 下一?上一个用实?~译错误 <br /> Ctrl-Shift-1/2/3 ?#8220;目”/“文g”/“收藏?#8221;中选择 <br /> Ctrl-[ 插入记L(fng)臛_配的Ҏ(gu)?<br /> Ctrl-^ Ctrl-[Q法?比利时语键盘Q?<br /> <br /> 用Java~码 <br /> Ctrl-I 覆盖Ҏ(gu) <br /> Alt-Shift-F/I 修复全部/选定cȝ?<br /> Alt-Shift-W ? try-catch 块围l?<br /> Ctrl-Shift-F 重新讄选定内容?<br /> Ctrl-D/Ctrl-T 左移/右移一个制表符 <br /> Ctrl-Shift-T/D d/撤消注释?("http:// <br /> Ctrl-L/K 插入下一?上一个匹 <br /> Esc/Ctrl-I格?关闭/打开代码完成 <br /> Ctrl-M 选择下一个参?<br /> Shift-I格?输入I格Q不展开~写 <br /> Alt-F1/Shift-F1 昄/搜烦(ch) Javadoc <br /> Ctrl-Shift-M  提取Ҏ(gu) <br /> Alt-U-G ? “get” 攄到标识符前面 <br /> Alt-U-S ?“set” 攄到标识符前面 <br /> Alt-U-I ?“is” 攄到标识符前面 <br /> Ctrl-Backspace/Del 删除上一?当前?<br /> Ctrl-E 删除当前?<br /> Ctrl-J-S/E 开?l束录制?<br /> Ctrl-Shift-J  插入国际化字W串 <br /> Ctrl-数字键盘上的 - 折叠Q隐藏)(j)代码?<br /> Ctrl-数字键盘上的 + 展开已折叠的代码?<br /> Ctrl-Shift-数字键盘上的 - 折叠所有代码块 <br /> Ctrl-Shift-数字键盘上的 + 展开所有代码块 <br /> Alt-Enter 昄/提示 <br /> <br /> 打开和切换视?<br /> Ctrl-Shift-0 昄“搜烦(ch)l果”H口 <br /> Ctrl-0 昄源代码编辑器 <br /> Ctrl-1 昄“目”H口 <br /> Ctrl-2 昄“文g”H口 <br /> Ctrl-3 昄“收藏?#8221;H口 <br /> Ctrl-4 昄“输出”H口 <br /> Ctrl-5 昄“q行环境”H口 <br /> Ctrl-6 昄“待做事项”H口 <br /> Ctrl-7 昄“D”H口 <br /> Ctrl-Shift-7 昄“属?#8221;对话?<br /> Ctrl-Shift-8 昄lg面板 <br /> Ctrl-8 昄“版本控制”H口 <br /> Ctrl-9 昄“VCS 输出”H口 <br /> Shift-F4 昄“文档”对话?<br /> Alt-向左方向?Ud到左侧窗?<br /> Alt-向右方向?Ud到右侧窗?<br /> Ctrl-Tab (Ctrl-`) 在打开的文档之间切?<br /> Shift-Escape 最大化H口Q切换)(j) <br /> Ctrl-F4/Ctrl-W 关闭当前选定的窗?<br /> Ctrl-Shift-F4 关闭所有窗?<br /> Shift-F10 打开上下文菜?<br /> <br /> ~译、测试和q行 <br /> F9 ~译选定的包或文?<br /> F11 生成主项?<br /> Shift-F11 清理q生成主目 <br /> Ctrl-Q 讄h参数 <br /> Ctrl-Shift-U 创徏 JUnit 试 <br /> Ctrl-F6/Alt-F6 为文?目q行JUnit试 <br /> F6/Shift-F6 q行主项?文g <br /> <br /> 调试 <br /> F5 开始调试主目 <br /> Ctrl-Shift-F5 开始调试当前文?<br /> Ctrl-Shift-F6 开始ؓ(f)文g调试试 (JU <br /> Shift-F5/Ctrl-F5 停止/l箋调试?x)?<br /> F4 q行到文件中的光标位|?<br /> F7/F8 步入/过 <br /> Ctrl-F7 步出 <br /> Ctrl-Alt-向上方向?转至被调用的Ҏ(gu) <br /> Ctrl-Alt-向下方向?转至调用Ҏ(gu) <br /> Ctrl-F9 计算表达式的?<br /> Ctrl-F8 切换断点 <br /> Ctrl-Shift-F8 新徏断点 <br /> Ctrl-Shift-F7 新徏监视 <br /> Ctrl-Shift-5 昄 HTTP 监视?<br /> Ctrl-Shift-0 昄“搜烦(ch)l果”H口 <br /> Alt-Shift-1 昄“局部变?#8221;H口 <br /> Alt-Shift-2 昄“监视”H口 <br /> Alt-Shift-3 昄“调用?#8221;H口 <br /> Alt-Shift-4 昄“c?#8221;H口 <br /> Alt-Shift-5 昄“断点”H口 <br /> Alt-Shift-6 昄“?x)?#8221;H口 <br /> Ctrl-Shift-6 切换?#8220;执行”H口 <br /> Alt-Shift-7 切换?#8220;U程”H口 <br /> Alt-Shift-8 切换?#8220;?#8221;H口 <img src ="http://www.aygfsteel.com/asdtiang/aggbug/309289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/asdtiang/" target="_blank">asdtiang</a> 2010-01-13 11:25 <a href="http://www.aygfsteel.com/asdtiang/articles/309289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 获取表名http://www.aygfsteel.com/asdtiang/articles/309221.htmlasdtiangasdtiangTue, 12 Jan 2010 11:02:00 GMThttp://www.aygfsteel.com/asdtiang/articles/309221.htmlhttp://www.aygfsteel.com/asdtiang/comments/309221.htmlhttp://www.aygfsteel.com/asdtiang/articles/309221.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/309221.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/309221.html        工具QJBUILDER2006。MYSQL5?

        我查?jin)好几天才成功的Q写出来目的是希望大家不要浪Ҏ(gu)_(d)

        代码如下Q(q行时肯定要自己Ҏ(gu)Q?/p>

 public void getTables() {
        try {
            int i;
            i = 0;
            DatabaseMetaData md = this.con.getMetaData();
            ResultSet rs;
            rs = md.getCatalogs();
            MainFrame.msg.append("databases start!!!"n");
            //////昄数据库名
            while (rs.next()) {
                MainFrame.msg.append(rs.getString("TABLE_CAT") + ""n");
            }
            rs = md.getTableTypes();
            rs.last();
            i = rs.getRow();
            String[] str = new String[i];
            rs.first();
            //////昄数据库类?br />             while (rs.next()) {
                str[i - 1] = rs.getString("TABLE_TYPE");
                MainFrame.msg.append(rs.getString("TABLE_TYPE") + ""n");
            }
            ///q行代码是关键,查了(jin)好久,具体参数我也不太明白Q望高h指点
            /////因ؓ(f)在JDK帮助文档中没有看到有%q个东东
            rs = md.getTables(null, "%","%", null);
            //////昄表名
            MainFrame.msg.append("tables start!!!"n");
            while (rs.next()) {
                MainFrame.msg.append(rs.getString("TABLE_NAME")+"   "+rs.getString("TABLE_CAT") + ""n");            }
        } catch (Exception e) {
            MainFrame.msg.append(e.getMessage() + ""n");

        }

q行l果Q(students 是自己徏的数据库Q表为course,sc,studentQ?/p>

databases start!!!
information_schema
mysql
students
test
VIEW
LOCAL TEMPORARY
tables start!!!
course   students
sc   students
student   students



asdtiang 2010-01-12 19:02 发表评论
]]>
java log4j使用http://www.aygfsteel.com/asdtiang/articles/309181.htmlasdtiangasdtiangTue, 12 Jan 2010 09:22:00 GMThttp://www.aygfsteel.com/asdtiang/articles/309181.htmlhttp://www.aygfsteel.com/asdtiang/comments/309181.htmlhttp://www.aygfsteel.com/asdtiang/articles/309181.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/309181.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/309181.html
1、定义配|文?

首先使用配置文g我们的应用程序更加灵z配|log日志输出方式包括输出优先U、输出目的地、输出格式。Log4j支持两种配置文g格式Q一U是 XML格式的文Ӟ一U是JavaҎ(gu)文件log4j.propertiesQ键=|(j)。下面将介绍使用log4j.properties文g作ؓ(f)配置? 件的Ҏ(gu)Q?

①配|根LoggerQ其语法为:(x)0

log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中Qlevel 是日志记录的优先U,分ؓ(f)OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的别。Log4j只用四个别,? 先从高C分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的U别Q?zhn)可以控制到应用程序中相应U别的日志信息的开兟뀂比如在q里? 义了(jin)INFOU别Q则应用E序中所有DEBUGU别的日志信息将不被打印出来? appenderName是指定日志信息输出到哪个地斏V可同时指定多个输出目的地?

②配|日志信息输出目的地AppenderQ其语法为:(x)

log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN

其中QLog4j提供的appender有以下几U:(x)
org.apache.log4j.ConsoleAppenderQ控制台Q,
org.apache.log4j.FileAppenderQ文Ӟ(j)Q?
org.apache.log4j.DailyRollingFileAppenderQ每天生一个日志文Ӟ(j)Q?
org.apache.log4j.RollingFileAppenderQ文件大到达指定尺寸的时候生一个新的文Ӟ(j)Q?
org.apache.log4j.WriterAppenderQ将日志信息以流格式发送到L指定的地方)(j)

③配|日志信息的格式Q布局Q,其语法ؓ(f)Q?

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1

log4j.appender.appenderName.layout.option = valueN

其中QLog4j提供的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 输出代码中指定的消息

%p 输出优先U,即DEBUGQINFOQW(xu)ARNQERRORQFATAL
%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)2002q?0?8?22Q?0Q?8Q?21
%l 输出日志事g的发生位|,包括cȝ名、发生的U程Q以?qing)在代码中的行数。D例:(x)Testlog4.main(TestLog4.java:10)

2、在代码中用Log4j

①得到记录器

使用Log4jQ第一步就是获取日志记录器Q这个记录器负责控制日志信息。其语法为:(x)

public static Logger getLogger( String name)

通过指定的名字获得记录器Q如果必要的话,则ؓ(f)q个名字创徏一个新的记录器。Name一般取本类的名字,比如Q?

static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

②读取配|文?

当获得了(jin)日志记录器之后,W二步将配置Log4j环境Q其语法为:(x)

BasicConfigurator.configure ()Q?自动快速地使用~省Log4j环境?
PropertyConfigurator.configure ( String configFilename) Q读取用Java的特性文件编写的配置文g?

例:(x)PropertyConfigurator.configure(".\\src\\log4j.properties")
DOMConfigurator.configure ( String filename ) Q读取XML形式的配|文件?

③插入记录信息(格式化日志信息)(j)

当上两个必要步骤执行完毕Q就可轻村֜使用不同优先U别的日志记录语句插入到(zhn)想记录日志的Q何地方,其语法如下:(x)

Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;

log4j范例E序

下面用一个最单的范例E序来进一步说明log4j的用方法。程序代码如下:(x)



import org.apache.log4j.*;



public class LogTest {





static Logger logger = Logger.getLogger(LogTest.class.getName());



public static void main(String[] args) {



PropertyConfigurator.configure ( “.\\src\log4j.properties”)Q?

logger.debug("Debug ...");



logger.info("Info ...");



logger.warn("Warn ...");



logger.error("Error ...");



}

}

E序说明Q?

?static Logger logger = Logger.getLogger(LogTest.class.getName());是创徏一个属于LogTestcȝLogger对象Q创建时? 告知Logger你当前的Class是什么?

?PropertyConfigurator.configure ( “log4j.properties”)是说用当前工E目录下的src文g夹中的log4j.properties文g作ؓ(f)配置文g。若? log4j.properties攑֜工程根目录下也可不写此句Q程序会(x)自动扑ֈ配置文g?

? logger.debug是输出debug的信息,logger.info是输出提示信息Qlogger.warn是昄警告? 息,logger.error是昄错误信息?



下面是配|文件log4j.properties的内容:(x)

log4j.rootCategory=DEBUG, stdoutQR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=log.txt

log4j.appender.R.MaxFileSize=100KB

log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n

E序说明Q?

?log4j.rootCategory=DEBUG, stdoutQR

是说我要显C所有优先权{於和高于Debug的信息?
"stdout"Q?#8221;R”表示我定义了(jin)两个输出?随便什么名字都??

②下面的三行说stdout输出端其实是标准输出ConsoleQ也是屏幕。输出的格式是PatternLayout。{换方式是%5p (%F:%L) - %m%nQ即前五格用来显CZ先权Q再昄当前的文件名Q加当前的行数。最后是logger.debug()或logger.info()? logger.warn()或logger.error()里的信息?n表示回RI?

③再加上下面六行则log信息不光昄在屏q上Q而且被保存在一个叫"log.txt"的文仉Q文件最大ؓ(f)100KB。如果文件大超q?00KBQ? 文g?x)被备䆾?log.txt.1"Q新?log.txt"l箋记录log信息?

接下来我们可以改变log4j.propertiesQ而不需重新~译可以控制log信息是否昄、log信息的输出端cd、输出方式、输出格式,{? {。D例如下:(x)

①在log4j.properties文g里把"log4j.rootCategory=DEBUG,stdout,R"改写 ?log4j.rootCategory=OFF, stdout,R"Q这h有的log信息都不?x)显CZ(jin)Q解决了(jin)本文开始提出的问题?
②在log4j.properties文g里把"log4j.rootCategory=DEBUG,stdout,R"改写 ?log4j.rootCategory=INFO, stdout,R"Q这样只昄INFO, WARN, ERROR的log信息Q而DEBUG信息不会(x)被显C;



在webE序中用log4j注意问题

1?nbsp;   ׃jsp或servlet在执行状态时没有当前路径概念Q所有用PropertyConfigurator.configureQStringQ语? 找log4j.properties文g时要l出相对于当前jsp或servlet的\径{化成Z个绝对的文gpȝ路径。方法是使用 servletcontext.getrealpath(string)语句。例Q?

//得到当前jsp路径

String prefix = getServletContext().getRealPath("/");

//dlog4j.properties

PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties");

2、相应的log4j.properties讄某个属性时也要在程序中讄l对路径。例Q?

log4j.appender.R.File属性设|日志文件存放位|。我们可以用d.properties配置文g的方法进行灵z设|?


asdtiang 2010-01-12 17:22 发表评论
]]>
JAVA 日志pȝ?-?/title><link>http://www.aygfsteel.com/asdtiang/articles/309180.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Tue, 12 Jan 2010 09:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/asdtiang/articles/309180.html</guid><wfw:comment>http://www.aygfsteel.com/asdtiang/comments/309180.html</wfw:comment><comments>http://www.aygfsteel.com/asdtiang/articles/309180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/asdtiang/comments/commentRss/309180.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/asdtiang/services/trackbacks/309180.html</trackback:ping><description><![CDATA[<p style="text-indent: 24pt;" class="0"><span style="font-size: 12pt;"><span>? 志,源于logQ有航v日志的意思。指记录员记录每天的行E,生活?qing)发生的事g。在软g开发领域,用来监控代码中变量变化,跟踪 代码q行的轨q,在开发环境中担当调试器作用,向控制台或文件输Z息?/span></span></p> <p style="text-indent: 24pt;" class="0"> </p> <p style="text-indent: 24pt;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;"><span>几乎所有的软g开发语aQ^収ͼ(j)都有自己的日志系l,<span id="wmqeeuq" class="hilite1">java</span>Q?netQrubyQphp{。在<span id="wmqeeuq" class="hilite1">java</span>? 域,存在大量的日志组Ӟ</span></span><span><a _fcksavedurl="http://www.open-open.com/open50229.htm"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15">open-open</span></a></span><span style="font-size: 12pt;"><span>?录了(jin)21个日志组件?/span></span></span></span></p> <p style="text-indent: 24pt;" class="0"><span style="font-size: 12pt;"><span>? 功能上讲Q这些可以分Zc,一是日志工L(fng)Q它实现?jin)日志的记录Q格式化和别的划分Q代表ؓ(f) logbackQsimplelog。二是日志系l,提供?jin)完整的框架功能q实C(jin)日志记录。代表ؓ(f)julQjdk提供的日志框 Ӟ(j)Qlog4jQapache开源项目)(j)。三是抽象整合类Q它提供?jin)一l接口,完成日志功能Q通过包装其他日志工具或系l来工作jclQapache开 源组Ӟ(j)Qslf4j?/span></span></p> <p style="text-indent: 24pt;" class="0"> </p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;"><span>从历史上Ԍlog4j出现最早,</span></span><span style="font-size: 12pt;">Ceki Gülcü<span>是其创造者。自java1.4开始,jdk提供?span class="hilite1">java</span>.util.logging cdQ提供了(jin)一个完整的日志框架Q在设计上要比log4j要更清晰?q个时候,除此之外Q还有一些其他日志组Ӟ<span id="wmqeeuq" class="hilite1">java</span>领域从来不缺轮子,L有h在发明轮 子,轮子多了(jin)Q就?x)生؜乱,׃?x)有h站出来,要一l江湖,于是QjclQapache一个开源的日志lg诞生?jin),它提供?jin)一l日志系l的接口Q通过? log4jQjul和simplelogq行包装Q提供日志功能。这P开发的时候,只需要用jclQ通过配置Q灵z选择底层实现。这P对于开发h? 来说Q开发更单了(jin)些。看h一切太q了(jin)Q可Ceki Gülcü认ؓ(f)Q应该有一个更好的日志框架。log4jl过q么久的发展Q已l成Z(jin)一个巨人,? 伤痕累篏Q从外面看,l典Q庄重,强壮Q从内部看,却有着一Ҏ(gu)的飞U(ThinkPadQ,充满?jin)代码的坏味道。或总没有勇气来改造这个巨人,d? 许是最好的选择Q于是,出来Q创Z(jin)slf4jQ来取代jclQ创Z(jin)logbackQ来取代log4j。目前,log4j和jul应用最为广 泛,slf4j作ؓ(f)新兴的抽象层Q整合logbackQ以其简z,快速,正被来多的顶U项目用?/span></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"> </p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>代表日志lg要介l?/span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Log4j<span>Q历史?zhn)久,应用q泛Q被UL到多U语a?qing)^収ͼ功能强大Q在众多的日志框?中,仍占据着dC?/span></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Jul<span>Qjdk提供的日志框Ӟ设计_良Q和jdk紧密l合Q控制灵z,使用单?/span></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Jcl<span>Q提供了(jin)日志的抽象层Q可以整合多U实现。但有classloader问题?/span></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Slf4j<span>Q提供了(jin)jcl的超集,避免?jin)classloader问题?/span></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Logback<span>Q可靠,通用Q快速,灉|?span class="hilite1">java</span>? 志工P官方描述Q?/span></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"> </p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>目选择思考?/span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>如果是单一的项目,如桌面应用,? 用julQ免配置Q控制灵zR?/span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>如果是web开发,宜采? log4jQ因为系l已l有?jin)很多的配置文gQ不在乎多一个,而且log4j可以qMlgQ不像julQ和jvm紧密l合在一赗?/span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>如果是多目整合开发,宜采? slf4jQ一是它可以整合其他遗留日志lgQ二是其提供的抽象层Qؓ(f)来的开发提供了(jin)灉|性?/span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"> </p> <p style="margin-top: 5pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>参考资料:(x)</span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">1Q?/span><span style="font-size: 12pt;">IBM developerworks<span>? log4j的介l?nbsp;</span></span><span><a _fcksavedurl="http://www.ibm.com/developerworks/cn/java/l-log4j/index.html"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">2Q?/span><span style="font-size: 12pt;"><span id="wmqeeuq" class="hilite1">Java</span><span>开 源日志组件列表?/span></span><span><a _fcksavedurl="http://www.open-open.com/open50229.htm"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">3Q?/span><span style="font-size: 12pt;">Slf4j<span>?方网站?/span></span><span><a _fcksavedurl="http://www.slf4j.org/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">4Q?/span><span style="font-size: 12pt;">Logback<span>?方网站?/span></span><span><a _fcksavedurl="http://logback.qos.ch/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">5Q?/span><span style="font-size: 12pt;">Log4j<span>?方网站?/span></span><span><a _fcksavedurl="http://logging.apache.org/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">6Q?/span><span style="font-size: 12pt;">Jcl<span>?方网站?/span></span><span><a _fcksavedurl="http://commons.apache.org/logging/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">7Q?/span><span style="font-size: 12pt;">Sun<span>?方网站?/span></span><span><a _fcksavedurl="http://www.sun.com/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">8Q?/span><span style="font-size: 12pt;"><span>一 个jcl的中文说明?/span></span><span><a _fcksavedurl="http://hedong.3322.org/archives/000316.html"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p> <img src ="http://www.aygfsteel.com/asdtiang/aggbug/309180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/asdtiang/" target="_blank">asdtiang</a> 2010-01-12 17:21 <a href="http://www.aygfsteel.com/asdtiang/articles/309180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͷ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ٳ</a>| <a href="http://" target="_blank">Ͱ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">㺺</a>| <a href="http://" target="_blank">Ԫ</a>| <a href="http://" target="_blank">˱</a>| <a href="http://" target="_blank">ƽ½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨ʡ</a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϸ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ں</a>| <a href="http://" target="_blank">˾</a>| <a href="http://" target="_blank">Դ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>