zzz's profileMagic 's Forest , ...PhotosBlogListsMore ![]() | Help |
Hello~原来这里有个Bar阿,我才发现:)
麦子 露wrote:
在网上虾抖八豆的,看见了这个博客~~~看了文章觉得十分的温馨呢~~~我刚刚开始使用MSN吧~~可能是我属于90后的原因一直使用QQ呢~
希望加我个好友。你如果加我的话~~算是我在网上认识的第一个好友呢。斑竹是不是想问我为什么我自己不加你是吧??
其实这灰常简单,因为我不会的嘛....忽忽~~斑竹加我吧~~~
May 9
Crystalwrote:
你不能放的照片我都替大家放了,哇咔咔咔~~!!
Mar. 6
YUKO 黄wrote:
随便过来睬睬,还是什么都不要想最好~继续混日子吧!
Jan. 8
zzz zzzwrote:
大家圣诞快乐~~喜欢我送的礼物吗?呵呵
Dec. 25
zzz zzzwrote:
~O~my God~I swear ~~
我刚才去你的blog转了转 留了些笔迹 然后打算上来放点照片,这才看到你的留言 回复完 ,再然后才看到这里的要求。。。还真是巧得来~!! 算是礼尚往来了伐 呵呵~~~
Nov. 30
Crystalwrote:
我给你留了,你也要给我留言,所谓礼尚往来!!!不然我要撒乌拉额,晓得伐?!
Nov. 29
妍妮 Natalie.Huwrote:
唔,罗里八索的人:
跑来听歌的,我倒,有几首貌似是魔女幼熙的ost吧,还蛮好听。^^v
跑来看照片的,晕了,先挑日本的那些瞄吖瞄,忒多了嘎。边看边瞌睡。z..z...
没事儿,留下偶d小脚印。下回再来听歌看照片顺带留个言。
看偶多莫善良,没办法。rp perfect ahhh!! 睡了,困S~
Oct. 8
Vivien xiewrote:
哈哈哈~
在此留名
June 30
zzz zzzwrote:
你海南几张不是很经典阿,都出自我手啊,嘎嘎
照片评论 原来点了添加评论后再更改当前照片的话文字还是加在之前的照片这里,艾~都乱了
June 15
ssswrote:
这么多照片....看到2点半了饿(晚上)...没见到几张我的。....有也是很难看的。...郁闷..
June 14
|
Magic 's Forest , magic forest无边的魔法森林 希望能用我的魔法 让他永远晴天。 ———我为自己定三戒 戒惰 戒色 戒游戏 @@ 礼仪、廉耻、忍耐、克己、百折不屈 December 01 jboss的log优化(转)转帖地址:http://www.javaeye.com/topic/257857如果不进行优化配置,JBOSS下的项目查错将非常麻烦,在JBOSS4.2.2GA版本中,默认将所有的DEBUG信息都输了个遍,刚运行 JBOSS,Server.log的日志就差不多1M了,再停掉JBOSS,什么正事都没做,都己经生成看不到的LOG了,只能用一个字来形容:费物! 不过话先别说得这么激,年轻人,应该控制好自己的心态,冲动是魔兽咧!LOG太多确实一点用也没有,本来这些LOG最大的功能是方便查错的,但如果生成N行的LOG,从中找到你想要的,我还不如把程序检查一遍算了!因此,在不同的应用场合下,配置好你的LOG,才能让项目更加顺利地进行哦! 好了,转入正题,本文针对的是JBOSS4的LOG4J配置,其它的请参阅相应的文章。 JBOSS4的LOG4J配置默认放在Deploy目录的conf/目录下,比如现在我将ear放到jboss的default目录下,那么 log4j的文件就是jboss/server/default/conf/jboss-log4j.xml,找到它,我们再分析一下它里面的内容吧。 首先是第一段,一个FILE的appender,代码如下
<!-- A time/date based rolling appender --> <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param name="File" value="${jboss.server.log.dir}/server.log"/> <param name="Append" value="false"/> <!-- Rollover at midnight each day --> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <!-- Rollover at the top of each hour <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/> --> <layout class="org.apache.log4j.PatternLayout"> <!-- The default pattern: Date Priority [Category] Message\n --> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> --> </layout> </appender> <!-- A time/date based rolling appender -->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<!-- Rollover at the top of each hour
<param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
-->
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
-->
</layout>
</appender>上面这一段就是JBOSS默认输出到log/server.log文件的基本配置,它的name是FILE ,这是自己定的,在其它地方会用这引name引用到它,然后appender的类型是DailyRollingFileAppender , 意思是每天生成一个新的server.log文件,此时有人就会问,怎么每天都是server.log,那么昨天的岂不覆盖掉了?别担心,这种事情开发者早就想到了,它里面会有一些参数去设置它,自动让你前一天的log改其它名,当然appender的类型还有好几种,本文最后面有参考,根据你的项目的需要去设置它。
中间第一个参数是log文件的输出地址,大家明白的了,改动一下就行了。 第二个参数<param name="Append " value="false "/>,意思是运行jboss时,要不要覆盖之前的log,这在开发调试时很有用,你设成false后,每次你重新运行jboss,新生成的log都覆盖了旧的,这样找起来比较方便,也不用自己专门去删除它,但如果是正式使用了,可以根据需要将成设成true,这样所有的日志都会被保存起来了,隔一段时间,你就可以找到之前任一时候的log信息哦。 上面讲到了有一些参数设置文件换前一天的log的文件名的,大家可以注意到配置的中间有个DatePattern ,这个就是设置你前一天的log将会被改成什么名,它在每天晚上的午夜进行,很自动吧,你看它后面的'.'yyyy-MM-dd ,你就会知道前一天的log的文件名将会被换成什么样的了!这里不进行填鸭!它还可以表现得更狠一下,每小时生成一个log怎么样,你想怎么样就怎么样,学学去配它吧。 再往下,有一个PatternLayout ,这个是输出文本的样式,这个是文本的,不过它还有得换哦,可以换成网页形式的日志(看起来会爽点),还有另外几个,大家有空可以玩玩,不过这个PatternLayout是最常用,也是最专业的,想成为专业人士,就用它吧!呵呵,开玩笑的,其它几个也很专业,甚至更专业! 刚接触log4j的人会不太理解PatternLayout的作用,不过你用过之后,就知它是多么强悍的了,日志显示的形式随你心意改变,可以输出很多信息,如类名,类行号,详细时间,日志正文,还有日志级别等,如果你自己开发一个log工具,你会做到这么强吗?我以前做过一个,只能硬编码,其它什么都不能干,用了它,准会把你气死一半。我就气了三分之一,因为我写的嘛,呵呵,亲生的,不能什么都怪它,那怪谁。。。 再往下有个ConversionPattern 的参数,它是配置log的显示格式的,它的详细格式使用在本文后面会贴出,有需要就去看看,不过用它默认的都挺好的了。 好了,之前介绍了一个默认的FILE Appender,还有一个CONSOLE的Appender,不用介绍了吧,就是显示在jboss控制台的日志样式,在此我们就不详谈了。 徐了这两个默认的,还可以自定义Appender哦,比如你项目有不同类型的日志输出到不同的log日志中,或者你不想改动默认的log配置,另找高明,反正就是很个性化啦,生成多少个不同的log都行!
在这里我拷贝了一个FILE的的appender,然后作了小小改动,就可以生成我自定义的log了,代码如下
<!-- A time/date based rolling appender -->
<appender name="MYAPPENDER" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/mylog.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<!-- Rollover at the top of each hour
<param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
-->
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<!--<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>-->
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n-->
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
</layout>
</appender>它将会在log目录生成一个mylog.log文件,不过有一点需要注意,在没有其它代码引用这些appender之前,它什么也不会干的,怎么引用还得往下看。 在jboss-log4j.xml文件里靠下的地方,有很多下面这类代码
Xml代码
<!-- Limit the org.jboss category to INFO as its DEBUG is verbose -->
<category name="org.jboss">
<priority value="INFO" />
</category>它是干嘛用的?它就是log4j的强悍之一,它检测到是org.jboss输出的信息的话,就限制DEBUG的信息输出,之前说过jboss的 log信息超多,因为它默认将所有Debug信息都输出来了,这些jboss的debug信息对于我们这些平民百姓来说,没啥用,你加上我上面这一段,所有的JBOSS DEBUG信息都不会输出来的了,试试吧,其它的category你怎么改?讲一个我的经验给你们吧,你运行过jboss,然后停掉它,打开server.log,会看到很多的log信息,像下面这种 2008-10-18 16:00:59,203 DEBUG[org.apache.resource.deployment.RARDeployment ] Required license terms exist, view META-INF/ra.xml in .../deploy/jboss-ha-local-jdbc.rar 看上面粗体部份,它是由类org.apache.resource.deployment.RARDeployment 产生的log,你如果看到很多,你觉得没用,又或者你看到是DEBUG信息,你也不想要,就写一段category吧,将类的前面部分截取一段,写进category的name属性里,比如上面这类log,你不想看到它,你就这样写
Xml代码
<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
<category name="org.apache">
<priority value="INFO" />
</category>
这样所有org.apache属下的类的debug log都不会再输出来了,你还可以更狠一点,写下面这段
Xml代码
<category name="org.apache">
<priority value="ERROR" />
</category>这样org.apache下的普通INFO信息也不会输出了,只有错误的信息才会被输出! 至于其它的log信息,你就运行多几次jboss,每次根据server.log,找到你不想要的,再加多一些category,这样你的server.log就会变得非常精简的了,试试吧,一劳永逸,以后log就有得控制了,调试查错也更方便了。 到了这里,事情还没完呢,最后一点了。 之前我们自定义了一个appender,我们要用它来输出自己的项目的log,我们只是定义好了这个appender,还没用上它,它暂时还是不会起作用的(它会生成文件,但是没log往里面写),项目的log,还是只会在server.log里出现,不会写进你自定义的log里。下面我们干最后一点,完成所有工作。 写多一个category,name填上自己项目对应的,比如com.mycompany,然后在<priority value="xxx" />后面加多一行<appender-ref ref="MYAPPENDER" />,如下
Xml代码
<!-- Self Define Appender -->
<category name="com.mycompany">
<priority value="INFO" />
<appender-ref ref="MYAPPENDER"/>
</category>配置好了,下面贴一段代码中使用log的代码中,怎么用不讲了,很简单的,
Java代码
public class TestLog4j
{
public static void main(String[] args)
{
Logger logger = Logger.getLogger(TestLog4j. class);
logger.debug( " debug " );
logger.error( " error " );
logger.info("info");
}
} 下面,贴出一些常用的配置参考文档
1\日志输出级别,共有5级: FATAL 0 2\Log4j提供的appender有以下几种: org.apache.log4j.ConsoleAppender(控制台), 3\Log4j提供的layout有以下几种: 4\Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下: November 26 NTP配置NTP客户端
> service ntpd stop > ntpdate {服务器IP} >crond –e 每隔10分钟同步一次时间
================
NTP服务端 ntp-4.2.2p1-9.el5.centos.2.i386
> vi /etc/ntp.conf restrict 10.0.10.0 mask 255.255.255.0 nomodify notrap #允许client端 >service ntpd restart
~~~~~~~~~~~~~~~~
一些可以用的NTP服务器 cn.pool.ntp.org 133.100.11.8 prefer Memcachedwget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz 有可能还要libevent-devel的包 wget http://memcached.googlecode.com/files/memcached-1.4.3.tar.gz
memcached有用到libevent包,所以要先装下。 编译都没什么花头, ./configure && make && make install 默认是安装到/usr/local/bin下面
自己做个启动脚本
start() { stop() {
启动脚本里面如果要调试信息就加一个 –vv 的参数。
-p 端口11211 -m 使用的缓存大小 -d 作为后台运行 -u 指定用户,由于不能用root启动 所以要adduser -P 记录下pid,给stop用 -vv 详细信息显示 基本的 service 脚本#!/bin/sh RETVAL=0 start() { stop() { restart() { restart|reload) *) exit $RETVAL
这是一个最基本的service脚本 只要把要做的事情放到start和stop函数里面去就OK了。 更完善一点么就把路径什么的做成变量,做一些判断。 Java Installer Builder这2天做掉一个大项目,忙的这是~ 今天似乎没什么后续的任务 大概比计划完成的提早了吧 呵呵 领导们在开会,那就抓紧时间写点小结吧~ 先从小的项目开始
Java Installer Builder
打包程序,还蛮好玩的~ 就是制作安装程序的程序,我们以前装的游戏啊、程序啊 原来都是这么打包出来的,蛮好玩的~呵呵
用到的工具,Install4j,破解版下载地址 这个东东破解竟然还用到java代码,crack目录下面有个keygen.class 拷到安装路径 运行java keygen 就会有注册码出来了 我用的是这个 L-FLN#77002-1sx2e2c1spj1zb#325
………………………………………………
其实只要跟着一路next就ok了,不过在实际操作过程中还是有碰到些问题。
第一页 General Settings 这个是安装程序的名字,起的体面一点比较好。全小写的难看 Java版本,如果后面选择打包里面自带Java,就无所谓了。 安装过程用的Language,第一个是默认,下面可以增加多选,记得不要把默认的选进去 每个语言的文档其实都在${install4j}\resource\messages路径下面 可以把里面的install4j替换成想要的文字 打包好的安装程序放置的路径,下面还有默认生成文件名的格式、压缩方式、timestamp等 项目变量的设置 ~应该一般用不到吧。。
第二页 Files 要打包的文件夹,Add Files 然后选上整个目录 预览一下 readonly~ 指定要打包进去的文件 当然全选的话就不用改了
第三页 Launchers
New Launcher-> 我是用Generated Launcher的 执行安装的方式,其中有可以把这个程序做成Service的选项 输入执行程序的名字 这里就可以用一般文件名的格式了~还有设置执行的目录等。 下面有个Advanced Options,有一些细节的东西可以设置, 比如安装日志、服务启动的方式、Dependency等
icon 选择图标 要准备2个,16*16的和32*32的。大小不符合它会用自带那个,狠难看~
Java invocation 这个是最麻烦的地方了 先选Class Path,把根目录选进去。 然后记得把Main class要用到的Jar文件指定添加进去,指定目录的话是不会自动搜索的~ 然后选程序的Main class 下面可以填它的Parameters 下面有个Advanced Options,如果有的话 记得还要把Native Library Directory选进去
splash screen 启动程序时用的画面,就是那种刚启动时,屏幕中间会出来一段版权所有的这种半透明淡入淡出的图片
第四页 Installer 这个是安装过程的每个页面设置。 看是很多,其实仔细研究了一下基本没什么地方可以改动的,直接next好了 Custom Code,JAR文件的自定义代码 Application ID,Update用的 GUI 的一些选项 比如窗口大小、标题栏之类的 下面竟然有个 add install4j watermark to installer screens 的多选项。。记得去掉~ Installer Icon也可以自定义 Advanced里面有用console方式安装的后门参数等设置
第五页 Media 选For Windows还是For Mac、Unix/Linux 的 或者下面的archive 可以打包安装的那种,不用图形化。 安装路径 先勾上custom installation base directory的选项 后面填入C:\program File或者D:\之类的 上面填后续的程序目录名 中间没有什么 一直到第6部分 Bundled JRE 可以把JRE的包打在安装程序里,省的客户端没有安装环境什么的还要自己去找 先下载 然后就可以在选项里面选择了。 最后有个全面自定义的地方 几乎什么都可以再改一下。
第六页 Bulid 好,OK了 在这里Start就可以了。要看过程么可以把Enable extra verbose output勾出来看一看 Test Build貌似没什么用 还特费时间 不做也罢。 |
|||||
|
|