存档

作者存档

Work Timer V0.2

2010年5月4日 低调の华丽 没有评论

为什么要做这个工具?



我一直想做一个这样的工具.很多单位(包括我们单位)实行的是弹性工作制,上班时间只要满8小时就可以下班.因为我老是忘记早上什么时候打的卡,以至于经常在单位多待N久(其实也就是十几二十分钟).这个工具能很好的满足我的要求.

这个工具有什么功能?



1.针对弹性工作制的下班提醒,在某个时间段后程序会自动弹出对话框提示。

2.最小化到系统托盘,双击后显示程序界面。

3.下班提醒时,系统托盘变成闪烁状态(类似于QQ新消息)。

4.程序默认9小时之后提醒,用户可自由设置具体的工作时间。

5.当程序被关闭,如果用户在下班提醒之前重新打开,程序计时依然有效。

如何使用?



1.首先要安装Jre,下载地址:http://www.java.com/zh_CN/download/manual.jsp

2.双击运行该程序。

3.建议将程序设置为开机启动(将程序快捷方式拖到 开始->所有程序->启动 中,并将文件setting.properties 中的autoStart设为true)

下载地址

对于这个工具有什么问题可以联系我。

分类: Java 标签: ,

Log4J使用不完全指南

2010年5月4日 低调の华丽 没有评论

准备


登录apache.org,下载log4j最新jar文件。将jar文件导入到项目中.


快速应用



1.Log4J应用Demo

package com.log4j.test;
 
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
 
public class StartUp {
 
	public static Logger logger;
 
	public static void main(String[] args) {
		StartUp s = new StartUp();
		s.configLog4J();
		s.go();
	}
 
	private void configLog4J() {
		// 1.获取日志记录器,Name一般取本类的名字
		logger = Logger.getLogger(getClass().getName());
		// 2.配置Log4j环境
		// BasicConfigurator.configure();自动快速地使用缺省Log4j环境。
		// PropertyConfigurator.configure ( String configFilename);
		// 读取使用Java的特性文件编写的配置文件。
		// DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
		PropertyConfigurator.configure("Log4j.properties");
 
	}
 
	private void go() {
		for (int i=0;i<100;i++) {
			logger.debug("test debug");
			logger.log(Level.INFO, "test info");
		}
	}
}

2.新建配置文件 Log4j.properties

log4j.rootLogger=INFO, A1 ,A2
 
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] [%t] %c - %m%n
 
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=A2.log
log4j.appender.A2.Append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] [%t] %c - %m%n

3.运行Demo即可看到效果

Log4J详细配置


log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%-5p] [%t] %l - %m%n

1.配置根Logger,其语法为:

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

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

2.配置日志信息输出目的地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提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

3.pattern

%c 输出类的名字,默认是输出全名,可以指定输出多少层次,比如
%c{2}这样配置的话 "a.b.c" 是全类名,会输出"b.c".
%d 用来输出log事件发生的时间。
可以指定格式,比如:%d{yyyy-MM-dd HH:mm:ss}会输出
2007-04-26 20:12:03
%F    输出log事件发生的文件。
%l    输出log事件发生的位置,会输出全类名和在源码的哪一行。
%L    输出log事件发生在源码的第几行。
%m    输出message的内容,就是logger.info(message)的内容。
%M    输出log事件发生的方法名。
%n    输出一个换行符。不用担心系统的问题。
%p    输出log事件的级别,即info,debug,warn等。
%r    输出log事件所用的时间。
%t    输出log事件所在的线程。
%x    输出NDC(不明白什么意思,没试验出来)
%X    输出MDC
%%    输出%
分类: Java 标签: , ,

博客被和谐了

2010年4月6日 低调の华丽 3 条评论

其实我也不知道具体是什么原因中招了。也许是因为在空间上架设了奶瓶腿,被监测到了。可是奶瓶腿只有我一个人在用,没理由能被防火墙发现啊,也许是我低估了墙的威力吧。反正不管怎样,博客是在墙外了,而我还在墙内。

这几天本想写一些关于SWT方面的文章,一时半会又没兴致了。不过就像某Java大牛说的那样,SWT有点像用Java语法写VB程序的感觉。发一个自己写的SWT做的仿Notepad记事本吧,做的不够好,学习用。点击下载

Update:今天上来一看,又被解封了,啥意思?

分类: 生活点滴 标签: