• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 一個不錯的日志寫入類

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    import java .io.*; import java.util.*; public class LogWriter { private static final String DefalutLogFilePathName="c:\\logtext.log";//默認的日志文件的路徑和文件名稱 private static LogWriter logwriter; //該 類的唯一的實例 private static In

    import java.io.*;
    import java.util.*;
    public class LogWriter {
    private static final String DefalutLogFilePathName="c:\\logtext.log";//默認的日志文件的路徑和文件名稱
    private static LogWriter logwriter; //該類的唯一的實例
    private static InputStream fin; //屬性配置文件的輸入流
    private static Properties pro; //class Properties′s supper is Hashtable class
    private static PrintWriter out; //output stream
    private static String logFileName; //output file name
    private LogWriter() {
    outInit();//init out put stream,實例化PrintWriter out 對象.
    }
    /**保存你想保存在日志文件中的信息,實現同步
    * out put the message infomation
    * @param message infomation
    */
    public static synchronized void log(String message) {
    if (logwriter == null || (out == null)){
    logwriter = new LogWriter();
    }
    if (out != null) {
    out.println(new java.util.Date() + ":" + message);
    }
    }
    /**把異常信息保存在日志文件中,實現同步
    * out put the Excetion infomation
    * @param message infomation
    */
    public static synchronized void log(Exception ex) {
    if (logwriter == null || (out == null))
    logwriter = new LogWriter();
    if (out != null) {
    out.println(new java.util.Date() + ":" );
    ex.printStackTrace(out);
    }
    }
    /**
    *輸出文件流的init
    */
    private void outInit() {
    if (logFileName == null)
    logFileName = getlogFileName(); 屬性文件中類獲得日志文件的路徑
    try {
    if (out == null) {//如果輸出i/o沒有實例,則生成一個信的
    out = new PrintWriter(new FileWriter(logFileName, true), true); ; //
    中的FileWriter()中的第二個參數的含義是:是否在文件中追加內容
    }
    }
    catch (IOException ex) {
    System.out.println("無法打開日志文件:"+logFileName);
    ex.printStackTrace();
    out = null;
    }
    }
    /**
    *根據配置文件.來獲得日志文件的位置
    *
    * @return logFileName
    */
    private String getlogFileName() {
    try {
    if (pro == null) {
    pro = new java.util.Properties();
    fin = getClass().getResourceAsStream("log.properties"); //在類的當前位置,查找屬性配置文件log.properties
    pro.load(fin);//載入配置文件
    fin.close();
    }
    }
    catch (IOException ex) {
    System.err.println("無法打開屬性配置文件: log.properties" );
    ex.printStackTrace();
    }
    return pro.getProperty("logfile",DefalutLogFilePathName);
    //據屬性值獲得日志文件路徑,第二個參數是:如果找不到"logfile"標志,就返回的默認值
    }
    /**你也可以在所有的日志都記錄完成的時候,調用該方法,釋放資源.
    * free all the resouce,this is secuty method
    */
    public void free() {
    try {
    this.logwriter = null;
    if (out != null)
    this.out.close();
    if (fin != null)
    this.fin.close();
    }
    catch (IOException ex) {
    ex.printStackTrace();
    }
    }
    }
    //測試

    public class Do{
     
     public Do(){
     
     }
     
     public static void main(String[] args){
      
      try{
       LogWriter.log("張三登陸了該系統");
       LogWriter.log("張三刪除了xxx條記錄:記錄id:");
      }
      catch (Exception ex) {
       LogWriter.log(ex);
      }

     }
    }

     

    log.properties文件內容

    logfile=e:\\suoxin.log

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>