junctioner

再学习log4j笔记

log4j,字面意思就是针对j(Java)的日志。
log4j,可以记录显示Java程序运行的每一步的数据,相当于System.out.print,不过,它是以一个日志文件显示所标识的运行信息,不用在java运行显示台上看输出信息,比较方面。
log4j,记录的数据,可以作为判断程序运行状态的重要依据,更多的应是查找程序运行BUG的重要依据,特别是程序已发布,不能做单步调试的情况下,它的优越性就突显出来了。
引用一个对log4j的功能比较专业的描述:

1、监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;
2、跟踪代码运行时轨迹,作为日后审计的依据;
3、担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。

以前偶尔的用过几次,但一次没形成习惯和一套良好的应用机制,自咎主要原因是对log4j掌握的还是不够,亟待提升。

今天就花时间找些资源研究研究。

在网上搜到一些文章,首先看的是IBM中国网站上的一篇技术文章(http://www-128.ibm.com/developerworks/cn/java/l-log4j/index.html)讲得比较基础,也很详细,对log4j的使用讲得全面而贴切,甚利于初次学习,发表日期是2002/6/19(有点早)。

1、去网站(http://logging.apache.org/log4j/docs/download.html)下载log4j的jar包,直接下载log4j-1.2.13版链接:http://mirror.vmmatrix.net/apache/logging/log4j/1.2.13/logging-log4j-1.2.13.zip
2、解开log4j.jar文件放到web应用程序的WEB-INF/lib下面;
3、编写文件名为log4j.properties 配置文件到java源文件的根目录中;
4、在自己的程序中构建日志记录器;
5、利用记录器标识要输入的信息。

第二步如果是在java的一般应用程序中应用log4j,则在环境变量CLASSPATH中添加一个指向log4j.jar的值。
第三步把命名为log4j.properties的log4j配置文件放在java源文件目录中是一个简洁的办法,可以在程序中自定义的指定log4j的配置文件,配置文件名称和存放路径都可自定义。

当获得了日志记录器之后,第二步将配置Log4j环境,其语法为: 
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。 
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。 
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面引用的是使用Java特性文件做为配置文件的方法(不用XML解析器):

配置根Logger,其语法为: 
log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 
配置日志信息输出目的地Appender,其语法为 
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN其中,Log4j提供的appender有以下几种: 
org.apache.log4j.ConsoleAppender(控制台), 
org.apache.log4j.FileAppender(文件), 
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 
配置日志信息的格式(布局),其语法为: 
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1

log4j.appender.appenderName.layout.option = valueN其中,Log4j提供的layout有以下几种: 
org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 

下面是一个log4j配置文件的例子(内容不含前面的行号):
 1log4j.rootLogger=INFO, A1 , R
 2
 3log4j.appender.A1=org.apache.log4j.ConsoleAppender 
 4log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
 5log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 
 6
 7log4j.appender.R=org.apache.log4j.RollingFileAppender
 8log4j.appender.R.File=$TOMCAT_HOME/logs/log4j.log
 9##将$TOMCAT_HOME换成tomcat的安装目录,也可以指定一个存在的任意目录
10log4j.appender.R.MaxFileSize=100KB
11log4j.appender.R.MaxBackupIndex=1
12log4j.appender.R.layout=org.apache.log4j.PatternLayout
13log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


第1行的值INFO,表示输出INFO级以上的日志,如果设成OFF则表示不输出,A1和R是自定义的两种输出方式(可以自定义n种输出方式),其详细内容在后面有定义;
第3行定义A1是输出到控制台;
第7行定义R是输出到文件,并且控制文件在指定大小,超过指定大小自动按指定形式创建一个新名称的日志文件;

一般是以指定格式的文本输出日志,输出比较快捷,也可以定义HTML格式的日志输出,阅读方便,但稍微有点慢。

现在,可以象使用System.out.println一样标识程序输出信息了看一个在程序中应用log4j的简单例子。
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.FileAppender;
public class simpandfile {
    //获取log4j日志记录器
   
static Logger logger = Logger.getLogger(simpandfile.class);
   
public static void main(String args[]) {
       //新建一个日志输出样式
      SimpleLayout layout 
= new SimpleLayout();

      FileAppender appender 
= null;
      
try {
           //定义输出文件
         appender 
= new FileAppender(layout,"output1.txt",false);
      }
 catch(Exception e) {}

      logger.addAppender(appender);
       //设置日志输出等级为DEBUG
      logger.setLevel((Level) Level.DEBUG);
      //以各种等级标识输出信息
      logger.debug(
"Here is some DEBUG");
      logger.info(
"Here is some INFO");
      logger.warn(
"Here is some WARN");
      logger.error(
"Here is some ERROR");
      logger.fatal(
"Here is some FATAL");
   }

}

如果定义了log4j的输出配置文件,在程序中获取日志记录器后就可以直接标识日志输出信息。

[***] 在判断DEBUG/INFO级别的信息是否要加入日志文件前,记录器提供isDebugEnabled()/isInfoEnabled()方法判断当前级别是否激活,这样处理减少日志处理信息时再判断当前级别是否激活消耗的资源,提高运行性能。

补加:

刚发现log4e(http://log4e.jayefem.de/index.php/Download)这个eclipse的插件,它实现的功能是鼠标点击几下,就可以自动生产log标识,免去手敲的体力。
至于怎么用,就很简单了,跟它的插件一样安装,装完后,在eclipse的编辑区右键菜单中会多一个log4e项,所有操作都在这里了。

posted @ 2006-02-13 10:52 junctioner 阅读(3799) | 评论 (0)编辑 收藏

注册机是什么颜色的?

注册机是什么颜色的?黑色的。看过很多注册机,都是黑色的界面,挺醒目的。

注册机、破解码、散布的注册码、激活。。。。。

这些都是搜索引擎中热门的词语,因为它们能逾越一些商业软件的保护壳,让复制者不用花什么代价就能使用那些软件。

我对开源、共享软件是比较感兴趣的,也愿意在这方面做出自己的努力。特别欣赏Jboss Group,看到他们,仿佛是看到软件业最终的发展方向和模式。但在当前商业软件为主的状态下,特别是一些软件企业依靠一份份软件换来的钱活命的情况下,我们不能做那种下石头的事吧。

我是一个poor programmer,使用很多free工具,也使用黑色的工具,但我的原则是:自己使用,但不散发。

我很可怜,也可怜别人,留给自己一点尊严。

posted @ 2006-02-09 14:31 junctioner 阅读(697) | 评论 (0)编辑 收藏

企业应用链接收集

SAP携IBM推CRM托管服务 月收75美元

posted @ 2006-02-07 20:15 junctioner 阅读(265) | 评论 (0)编辑 收藏

Jira 3.5 Enterprise EAR/WAR + mysql 安装手记

前段时间很容易的就试装了jira的Professional Standalone, 写得比较简单,今天准备装一下Enterprise EAR/WAR ,写个详细一点安装手记。

最开始的工作自然是下载了。
把zip包解压到一个目录中,展开的内容如下:
edit-webapp:这个目录中放的是指定数据库类型的配置文件;
etc:这个目录中存放有三个xml文件;分别是换ear/war包用的配置文件;
         打war包的配置文件有两一个,jira.xml是通用的,tomcat-5.5-jira.xml是专为tomcat-5.5准备的。
src:这是一个空目录,可以放自己添加的要编译的功能源文件;
tools:这个目录中自带一个ant(如果你没有安装ant,就用得到它);
updater:为更新jira配备的一个更新工具目录;
webapp:主要的程序文件目录;
appendcp.bat:这个批处理文件没怎么用到;
build.bat:这个批处理文件把修改过的配置文件和程序文件打成一个可发布的war/ear包;
build.sh:功能同build.bat,是在linux下用的;
build.xml:ant的配置文件;
readme.txt:软件说明文件;

展开的这些东西还只是“材料”,接下来就是做一些配置并把它们打成可发布的包。

应用服务选用Tomcat5.0;
数据库选用mysql Ver 14.7 Distrib 4.1.14 for Win32;

先建表空间,再分配用户指定权限,

create database jiradb;
grant all privileges on jiradb.* to jiradbuser@localhost identified by 'jira';

做好外部了准备工作,就进行配置。
接着修改edit-webapp\WEB-INF\classes\entityengine.xml
找到
    <datasource name="defaultDS" 
        field-type-name
="hsql"
        helper-class
="org.ofbiz.core.entity.GenericHelperDAO"
        check-on-start
="true"
        use-foreign-keys
="false"
        use-foreign-key-indices
="false"
        check-fks-on-start
="false"
        check-fk-indices-on-start
="false"
        add-missing-on-start
="true"
        check-indices-on-start
="true">
替换为
    <datasource name="defaultDS" 
        field-type-name
="mysql"
        helper-class
="org.ofbiz.core.entity.GenericHelperDAO"
        check-on-start
="true"
        use-foreign-keys
="false"
        use-foreign-key-indices
="false"
        check-fks-on-start
="false"
        check-fk-indices-on-start
="false"
        add-missing-on-start
="true"
        check-indices-on-start
="true">

再修改etc\jira.xml(如果应用服务用tomcat5.5,则修改etc\tomcat-5.5-jira.xml
找到
    <parameter>
      
<name>driverClassName</name>
        
<!-- NOTE: if you change the database type, you will need to change it in WEB-INF/classes/entityengine.xml -->
      
<value>org.hsqldb.jdbcDriver</value>
    
</parameter>
    
<parameter>
      
<name>url</name>
      
<value>jdbc:hsqldb:@JIRA_HOME@/database/jiradb</value>
    
</parameter>
    
<parameter>
      
<name>username</name>
      
<value>sa</value>
    
</parameter>
    
<parameter>
      
<name>password</name>
      
<value></value>
    
</parameter>
修改为
    <parameter>
      
<name>driverClassName</name>
        
<!-- NOTE: if you change the database type, you will need to change it in WEB-INF/classes/entityengine.xml -->
      
<value>com.mysql.jdbc.Driver</value>
    
</parameter>
    
<parameter>
      
<name>url</name>
      
<value>jdbc:mysql://localhost:3306/jiradb?autoReconnect=true</value>
    
</parameter>
    
<parameter>
      
<name>username</name>
      
<value>jiradbuser</value>
    
</parameter>
    
<parameter>
      
<name>password</name>
      
<value>jira</value>
    
</parameter>

配置完后,就可以build一个jira的war包了。
如果系统中已装有ant,则直接运行build.bat文件,没有安装的话,它会运行自带的ant。

build运行完后,会在当前目录生成三个目录,
dist-generic:存放通用的war包,直接拷贝到应用服务的服务目录中就可以运行;
dist-tomcat:存放发布到tomcat中的外部war包及配置文件;
tmp:build运行过程中的临时文件目录;

dist-tomcat目录中,有一个war包,和对应三个tomcat版本的配置文件目录。

在此,拷贝dist-tomcat/tomcat-5/jira.xml$Tomcat/conf/Catalina/localhost/
启动tomcat,在IE地址样中输入:http://localhost:8080/jira
第一次运行jira,显示安装配置页面。(没有装截图软件,就不显示截图)
在这个配置页面,jira会根据操作系统的语言设置,选用相应的语言包(汉包的效果也不错,不存在语言问题:)),依照着相关的提示做相应的设置就OK,唯一花时间的事,就是要在线生成一个授权码,用下载jira的用户名登录,可以获得一个援权码,填好援权码下一步。
接下来是添加管理员,设置好后下一步。
再接下来是邮件通知的设置,此处你可以暂时禁用邮件通知,以后也可以重新启动邮件通知。
设置完成后就可以以刚才添加的管理员登录,创建BUG跟踪管理项目了。

posted @ 2006-02-06 12:01 junctioner 阅读(2128) | 评论 (0)编辑 收藏

开源杀毒软件

用过国内的多款杀毒软件,也用过国外的数款杀毒软件,用到最后是,机子里什么杀毒软件都不装。
病毒还是防为主要的,真正中招了,轻伤,没什么,这样的病毒功力比较浅,也比较容易手工清除;重伤的话,机子里的文件已面目全非,就是用杀毒软件也是提示“删除该文件”。
今天发现一开源的杀毒软件(http://www.clamwin.com/),想看看他到底怎么样,下载安装试试。
安装很简单,界面也很简洁,三个功能按钮,一看就知道怎么操作,点击查毒,还真那么回事,开始扫描了。我机子的没有中招,不知会不会扫出一些可疑文件出来:)
这款软件还有一个partner,功能是防毒,下载网址是:http://www.softpedia.com/get/Antivirus/Winpooch.shtml
先装上观察几天,过几天给试用报告。

posted @ 2006-01-20 09:19 junctioner 阅读(2574) | 评论 (2)编辑 收藏

学习python

早就知道有这么一个东西了,一直没时间看,今天就看看。
第一件事,找官网:http://www.python.org/,东西还真多,不知从哪看起。
不喜欢看些介绍的东西,就看新手向导(Beginner's Guide ),
python也有它的“jdk”,最新版本是2.4.2,先下载下来再说,当!
装上之后,做什么呢?
发现有代码样例,怎么让它跑进来呢?
找python的开发工具,一查,有好多,其中一种是eclipse+pydev的,试试这个
pydev是eclipse做python开发的插件,官网是:http://pydev.sourceforge.net/
对应版本有很多种,我装有eclipse3.1,就当最新的,pydev0.9.8.6
下载解开的文件,拷贝到eclipse的extplugin目录,新建link文件,启动eclipse,呵呵,还装好了!
在IBM的网站上找到这个资料:http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/#resources,比较老,是2004年的,但可以参照一下。
还是在eclipse的windows-preferences-pydev中指定一个python的编辑器(刚才下载安装python的“jdk”)。
把其中的样例代码下载到项目中,还真跑起来了。
也可以调试(调试运行的比较慢,可能是eclipse3.1的问题,呆会装个eclipse3.0的调试看看)
现在不知道python的语法,代码看不懂,这是主要的。


posted @ 2006-01-13 15:44 junctioner 阅读(358) | 评论 (1)编辑 收藏

Centric CRM 开源的客户关系管理系统

官网下载:http://www.centriccrm.com/Portal.do?key=home
点了下载图标后,半天没找到下载的链接,左找右找,找到一个tab,上写在download,复杂呀,还得点一下,看到下载的列表了,但点上去,还是没反应,到底是啥回事呢?发现类型是.torrent,好象是BT下载的种子,以前没用过BT,今天为了它,还得下载个BT玩玩。
上网找了一个,装上,还是没反应,快晕了。
再左看看,右看看,上看看,哦,要求是登录了才可以下载,注册登录吧,这才发现下载的连接是活的了。当下了种了,再才开始下载。以前听说BT是用来下载电影的,速度应很快,但怎么我今天用BT,它就不快呢,每秒才几K,才10几M的东西,得多长时间呀

posted @ 2006-01-05 16:50 junctioner 阅读(1520) | 评论 (1)编辑 收藏

选用jira

jira现在是商业化的软件,先找个demo版看看。
jira官网:http://www.atlassian.com/software/jira/
jira分企业版、专业版、标准版三个版本,我选专业版。
每个版本又分standalone和war/ear两种发布形式,standalone是被推荐使用的,就先用它。
下载完解开,从readme里找到jira的安装说明链接:http://www.atlassian.com/software/jira/docs/v3.4.2/install.html
照着安装说明做,非常容易的就运行起来了。

装后感觉:
   1、standalone的jira中自带一个tomcat,jira的资源包通过修改一些配置文件已发布到这个tomcat中,只要运行一下startup.bat就启动了。
   2、汉化做的不全,后台控制部分还是英文。
   3、功能还是比较多呀,得花时间研究怎么用呀。
   4、安装配置的时候,未配置邮件分发服务(没仔细看怎么配置,直接选禁用邮件分发),暂缺邮件分发这一功能。
   5、产品试用期是30天的,得想法办法解决
   6、安装的时候没有指定数据库,使用默认的hsql,可参考下面的链接更换应用数据库 http://www.atlassian.com/software/jira/docs/v3.4.2/standalone-dbconfig.html
下面这个链接是讲怎么更换到oracle上的
http://www.blogjava.net/waterye/archive/2005/08/24/10959.aspx

发现商业版的用户可以获取jira源码,真是羡慕ing。

posted @ 2006-01-05 09:11 junctioner 阅读(486) | 评论 (1)编辑 收藏

java和调用动态链接库

Java的运行是基于Java虚拟机的,Java虚拟机中又是一些动态链接库文件,一直不清楚它们之间是怎么样协同工作?

什么是动态链接库?在微软中文网站(http://support.microsoft.com/default.aspx?scid=kb;zh-cn;815065)上有很清楚的介绍。
DLL 是一个包含可由多个程序同时使用的代码和数据的库。

介绍jvm.dll装入过程:http://www.matrix.org.cn/resource/article/1/1650_jvm_loading_progress.html

把java应用生成本地应用的介绍:http://community.borland.com/article/0,1410,20679,00.html

posted @ 2005-12-31 16:45 junctioner 阅读(968) | 评论 (0)编辑 收藏

SWT学习样例源码

昨天装了SWT Designer后,摸索了半天,画出几个界面,但要让它“活”起来,还是得写一些代码,暂时没打算系统的去学习SWT,就偷懒,照别人的代码画瓢了。
找到几个不错的SWT学习源码网址:
http://www.java2s.com/ExampleCode/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm

posted @ 2005-12-31 15:13 junctioner 阅读(267) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(8)

随笔分类

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜