Java之单例模式



可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑

        单例模式是一种最简单且最常用的设计模式。单例模式通常应用在那些对于整个程序来说只有一个入口的资源操作场景,比如:日志应用、配置读写、数据库连接池、线程池、网站计数器等。这里以日志应用为例说明如何使用单例模式,具体代码如下:
        #vi Log4J.java
        import org.apache.log4j.Logger;
        import org.apache.log4j.PropertyConfigurator;

        public class Log4J {
            public static final int DEBUG = 1;
            public static final int INFO  = 2;
            public static final int WARN  = 3;
            public static final int ERROR = 4;

            private static Logger logger = Logger.getLogger(Log4J.class.getName());
            private static Log4J log4j = null;

            public static Log4J getInstance()
            {
                if (null == log4j)
                {
                   log4j = new Log4J();
                }
                return log4j;
            }

            public boolean SetConf(String strLogConfPath)
            {
                PropertyConfigurator.configure(strLogConfPath);
                return true;
            }

            public void WriteLog(int iLogLevel, String strLogContent)
            {
                switch (iLogLevel)
                {
                case DEBUG:
                    logger.debug(strLogContent);
                    break;
                case INFO:
                    logger.info(strLogContent);
                    break;
                case WARN:
                    logger.warn(strLogContent);
                    break;
                case ERROR:
                    logger.error(strLogContent);
                    break;
                default:
                    System.out.println("error log level for WriteLog error");
                    break;
                }
            }
        }
        简单使用如下:
       #vi Test.java
        public class Test{
            public static void main(String[] args)
            {
                Log4J.getInstance().SetConf(args[0]);
                Log4J.getInstance().WriteLog(Log4J.DEBUG, "Test Log4J success");
                System.out.print("HelloWord");
            }
        }
       日志配置如下:
        #vi log4j.properties
        ------------------------------------------------------------------------------------------------------
        # 定义 DEBUG 优先级, R 为日志输出目的的
        log4j.rootLogger= DEBUG, R
        # 设置日志输出类型 , 为文件类型
        log4j.appender.R= org.apache.log4j.FileAppender
        # 设置日志文件名 logRecord.log, 输出到 tomcat 服务器的 logs 目录下
        log4j.appender.R.file= ../logs/logRecord.log
        # 每次在文件尾写入新的日志信息
        log4j.appender.R.Append= true
        # 日志输出信息格式类型
        log4j.appender.R.layout= org.apache.log4j.PatternLayout
        # 日志输出信息格式为 日期、优先级、 [ 全类名 ] 、日志信息、换行
        log4j.appender.R.layout.ConversionPattern= %d %p [%l] %m%n
        编译执行:
        #javac -cp WEB-INF/lib/commons-logging-1.1.3.jar:WEB-INF/lib/log4j-1.2.17.jar -d ./ Test.java Log4J.java
        #java -cp .:WEB-INF/lib/commons-logging-1.1.3.jar:WEB-INF/lib/log4j-1.2.17.jar Test log4j.properties
        日志文件输出如下:
        2014-05-03 08:10:51,962 DEBUG [Log4J.WriteLog(Log4J.java:36)] Test Log4J success
        2014-05-03 08:10:52,890 DEBUG [Log4J.WriteLog(Log4J.java:36)]Test Log4J success
        2014-05-03 08:10:53,647 DEBUG [Log4J.WriteLog(Log4J.java:36)] Test Log4J success

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值