单例模式
volatile关键字
装饰者模式
Log4j之Logger等级和配置文件
前几天,看了之前的《计量器管理系统》中,遇到Log4j的一些使用方法,和之前用的Log4j,虽然用了,却不知道什么意思,前两天百度谷歌了下,
总结如下:(电脑崩溃搞了两天~~~无比郁闷~~)
Log4j一个很重要的类就是Logger,它负责日志处理的大部分操作。
贴个代码:
/** * <p>测试Log4j(仅供学习)</p> * * @author ChenST * * @create 2010-3-7 */ public class TestLog4j { /** * 获取一个属于TestLog4j的Logger对象 */ //Logger是日志处理的核心组件,负责大部分的日志处理操作 private static Logger logger=Logger.getLogger(TestLog4j.class); public static void main(String[] args) { //Logger有7种等级,分别是:(从低到高) //1. Level.ALL 打开所有日志记录 //2. Level.DEBUG 表示信息对调试过程非常有帮助 //3. Level.INFO 表示强调应用程序的运行过程 //4. Level.WARN 表明可能存在潜在的错误 //5. Level.ERROR 表明虽然发生错误事件,仍然不影响系统的继续运行 //6. Level.FATAL 严重错误,有可能将会使系统退出 //7. Level.OFF 关闭所有日志记录 //设置日志等级(默认可从log4j.properties配置中获取) //logger.setLevel(Level.WARN); logger.debug("debug"); logger.info("info"); logger.warn("wran"); logger.error("error"); logger.fatal("fatal"); } }
接着是配置文件log4j.properties文件,以前就是拷贝进去就完事了~~现了解了点点~:
这是之前经常用的配置文件,只是现在做了注释~~
#配置根Logger,第一个为输出级别,只有该级别和该级别以上的输出 log4j.rootLogger=DEBUG,CONSOLE #子日志是否使用rootLogger的配置(true是使用logger的配置) log4j.addivity.org.apache=true #将log4j.rootLogger中定义的CONSOLE输出到控制台 #(org.apache.log4j.ConsoleAppender表示控制台) log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender #日志的级别 log4j.appender.Threshold=WARN #指定输出控制台上 log4j.appender.CONSOLE.Target=System.out #PatternLayout表示可以灵活的展示布局方式 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout #展示了输出格式,详情如下: # %m 输出代码中指定的消息 # %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL # %r 输出自应用启动到输出该log信息耗费的毫秒数 # %c 输出所属的类目,通常就是所在类的全名 # %t 输出产生该日志事件的线程名 # %n 输出一个回车换行符 # %d 输出日志时间点的日期或时间, # %l 输出日志事件的发生位置 log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
因此,输出结果为:
[framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0 [main] DEBUG com.shine.log4j.TestLog4j - debug [framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0 [main] INFO com.shine.log4j.TestLog4j - info [framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0 [main] WARN com.shine.log4j.TestLog4j - wran [framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0 [main] ERROR com.shine.log4j.TestLog4j - error [framework] 2010-03-08 22:55:04,640 - com.shine.log4j.TestLog4j -0 [main] FATAL com.shine.log4j.TestLog4j - fatal
做个备忘~~~hoho~
观察者模式
MyEclipse修改部署工程名
YY问的问题:MyEclipse下如果修改部署工程名,按照平常右键refactor-->rename是不行的。因为实际发布的工程名仍然是原来的,后来百度了下,正确的做法:
右键点击【Properties】后出现一个窗口,点击【MyEclipse】中的【Web】项,修改【Web Context-root】中的值就可以了~~
如图:
//TODO和//FIXME的小奥妙
在公司,今天的那个架构师讲了编程规范,学了一招还挺好用的。
就是关于//TODO 和//FIXME 的用法
//TODO表示还没做的事,就是还没写的代码。
//FIXME表示可能有些功能已经实现了但不是最好的,或者存在异常隐患,需要后面更改的。
在代码中使用这些可以指导你以后不会忘记了还没写的代码和需要更改的代码。MyEclipse中提供了这样的功能。
在Task窗口中有如下功能,点击就可以定位到指定的代码部分。比较方便。如图:
JDBC实现批处理SQL语句最后不能加分号
重装系统-设置从光驱启动
前日,刚到公司实习,分配到一台电脑,重装系统,结果一直没有去读取光盘。
问了同事良哥才得知用如下方法解决:
重启电脑-按DEL键进入BIOS设置,选择Advanced BIOS Features-->First Boot-->CD-ROM
按F10保存即可解决
word2007只能打开一个窗口解决方法
今日,装了office2007,发现双击文档打开,结果只能打开一个窗口,而且都是显示第一次打开的内容。。
经百度..发现原来word2007与我装的PowerDesigner12.5起了冲突
解决方法:【office按钮】-->【word选项】-->【加载项】-->【转到COM加载项】-->去掉PowerDesigner的加载项之前的勾 既可
截图如下: