日期:2014-05-20  浏览次数:20733 次

简单日志类的实现,性能问题?
想写个日志工具,功能很简单,就是根据参数值Rank级别决定这个信息是否输出

应用:
public   class   A
{
    //类中的其他代码...

    //日志工具要调试输出
    Log   log=new   Log();
    log.outInfo( "这里是输出的信息内容 ", "Rank3 ");
}

public   class   Log
{
    //允许显示的级别集合
    private   List   l=null;
    public   Log()
    {
    //预定义3个级别
        l=new   ArrayList();
        l.add( "Rank1 ");
        l.add( "Rank2 ");
        l.add( "Rank3 ");
    }
    //显示信息函数
    public   void   outInfo(String   text,String   type)
    {
        if(l.contains(type))System.out.println(text);
    }
}

当使用的时候,我想用读文件内容来控制显示级别Rank,
一个文件logRank.txt
Rank= "Rank1,Rank2,Rank3 ";

然后把文件属性读到List里

改造后的Log类
public   class   Log
{
    //读文件内容
    File   f=new   File( "xxx ");
        //文件操作.....

    //允许显示的级别集合
    private   List   l=null;
    public   Log()
    {
    //预定义3个级别
        l=new   ArrayList();
    //装入文件中的属性值
        l.add(f1);
        l.add(f2);
        l.add(f3);
    }
    //显示信息函数
    public   void   outInfo(String   text,String   type)
    {
        if(l.contains(type))System.out.println(text);
    }
}

这样有个问题,就是每次new个Log对象都要读次文件.性能是不是不好.有没有什么更好的解决办法,读一次文件.
静态类可以解决上面的问题么?怎么写?
或者有没有更好的类似的实现方式

------解决方案--------------------
直接用log4j好了,用单例模式或者静态方法都可
------解决方案--------------------
singleton模式解决之.
------解决方案--------------------
log已有代码下面省略
public class Log
{
private Log();//把public 改为private 不允许创建
private static Log thisinstance=new log();//在这里创建log
public Log getlog() //返回实例
{
return thisinstance;
}
}