java服务器端的日志开发流程

来源:转载

流程: 因为我们要操作的是日志文件。而日志文件是位于文件夹LoG下面的,因此我们要得到日志文件的路径就应该首先获得LoG 文件夹的路径。日志文件的路径就等于LOG文件夹
的路径加上日志文件的名字;因此首先得到LOG文件夹的路径。通过SYSTEM的GETPROPERTY(”user.dir“)方法来获得用户当前的工作目录;LOG文件的路径就等于用户的工作目录加

[color=darkred]加上文件分隔符在加上文件名;在此由于不同的操作系统不一样,其文件分隔符也不一样,所以应该动态的去获得当前系统的文件分隔符,采用SYStem ,getproperty
("file.separator")来获得, 因此日志文件夹LOG的路径为String s=System.getProperty("user.dir")+System.getProperty("file.separator")+"log"; 但是由于字符串的链接[/color]是在静态常量区中来进行的,而且是不会被垃圾回收所回收的,这样的情况。我们考虑使用STRINGBUFFER 和STRINGBUILDER 通过这两个类的APPEND()方法来进行字符串的连接。

在此由于我们这个日志是多用户的,是开启多个线程的。所以STRINGBUFFER不能用 ,因为它是线程安全的。不能同时几个线程一起访问。所以选用了STRINGBUILDER类。

得到了LOG文件夹的路径之后,我们就应该去得到日志的文件名了。观察出:日志文件名=类名+.log.+当前日期

那么我们应该在定义一个方法来取得当前的日期,并且格式化该日期:

1)通过Calendar的GetInstece()方法来获得一个Calendar的对象,并用这个对象的GETTIME()方法取得当前时间
2)通过SimpleDateFormat类来格式化时间。

得到想要的日期以后就应该得到类名了: 因为在此已经知道类的情况我们直接利用 类名.CLASS取得类模板。然后用类模板的到该类的名字。在此需要注意的是如果我们直接

利用GETNAME()这个方法会得到他的包名。所以我们采用另外一个方法getSimpleName(),这样取得的就是只有类名了。

完成上面3个步骤之后:我们便可以得出日志文件的路径 = LOG文件的路径+文件分隔符+类名+.log.+当前日期 ;

我们还可以判断LOG文件是不是已经存在。如果存在判定其是不是文件夹,如果不是文件夹就删除。如果不存在我们就创建一个文件。NEW FiLE(文件夹的路径)通过FiLE。isDirectory 判定是不是文件夹 ,如果不是就删除。 通过EXITES()方法判定 文件夹存在不。如果不存在通过MKDIR()创建。

做好上面的之后。我们就可以向文件中写东西了。定义一个方法。NEW FILEOUTPUTSTREAM(文件路径,TRUE) 在此应该注意构造时应该选择两个参数的,后面的参数必须是TRUE 如果不是TRUE ,那么当我们以后再写入的时间就会覆盖之前的。 就没有日志的意义了。

最后我们做的是对我们写入的东西进行了一步格式化:2009-12-02 9:4:27 [com.lovo.lis.util.Logger]-INFO: 写入的信息

观察上面的格式:

1)首先要做的就是得到当前的 时。分。秒 那么我们另行定义一个方法取得;

2)这里的信息有类名其包含包名。因此用类模板的GETNAME()取得

3)有了上面的这些之后 就是进行字符串的连接了.当然也可以用Stringbuilder。




分享给朋友:
您可能感兴趣的文章:
随机阅读: