Advertisement
forextheblack

Logger Test

Jul 3rd, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.22 KB | None | 0 0
  1. package ml.neoforex;
  2.  
  3. import java.io.File;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.io.PrintWriter;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.Properties;
  10.  
  11. /*
  12.  * NeoForex 2015. www.neoforex.ml
  13.  * Only for NeoForex projects.
  14.  * Programmer Name: Daniel Hurtado(Forex) Email: forest_project@hotmail.es/forex.neoforex.ml
  15.  * Contact to Programmer for report bugs/Error's.
  16.  */
  17. public class Logger {
  18.     // Vars with default values.
  19.     private boolean isEnable = false;
  20.     private boolean fileLogEnable = true;
  21.     private String fileSaveFolder = "logs/";
  22.  
  23.     // Class information
  24.     private String className = "";
  25.  
  26.     // System properties
  27.     private Properties systemProperties;
  28.  
  29.     // Get vars for JVM..
  30.     public Logger(Class<?> classInfo) {
  31.         // Get System Properties...
  32.         this.systemProperties = System.getProperties();
  33.  
  34.         // Get default properties...
  35.         this.isEnable = Boolean.parseBoolean(systemProperties
  36.                 .getProperty("ml.neoforex.sockets.consoleEnable"));
  37.         this.fileLogEnable = Boolean.parseBoolean(systemProperties
  38.                 .getProperty("ml.neoforex.sockets.fileLogEnable"));
  39.  
  40.         // Set Logger url
  41.         if (this.fileLogEnable) {
  42.             if (!this.fileSaveFolder.equals(systemProperties
  43.                     .getProperty("ml.neoforex.sockets.fileSaveFolder"))
  44.                     && systemProperties
  45.                             .getProperty("ml.neoforex.sockets.fileSaveFolder") != null) {
  46.                 this.fileSaveFolder = systemProperties
  47.                         .getProperty("ml.neoforex.sockets.fileSaveFolder");
  48.             }
  49.         }
  50.  
  51.         // Check folder
  52.         this.checkSaveFolder();
  53.  
  54.         // Get the className and save class...
  55.         this.className = classInfo.getCanonicalName();
  56.  
  57.         // Start writing to log files
  58.         writeFileAlert("- Alert log started at: ".concat(this.getNowTime())
  59.                 .concat(" -"));
  60.     }
  61.  
  62.     // Output the alert and write if is necessary in console and log file.
  63.     public void writeAlert(Object message) {
  64.         StringBuilder messageBuilder = new StringBuilder();
  65.         messageBuilder.append("[".concat(this.className.toUpperCase())
  66.                 .concat("][ALERT][").concat(this.getNowTime()).concat("]-> "));
  67.         try {
  68.             messageBuilder.append(message);
  69.             if (this.isEnable)
  70.                 System.err.println(messageBuilder.toString());
  71.  
  72.             if (this.fileLogEnable)
  73.                 this.writeFileAlert(messageBuilder.toString());
  74.         } catch (Exception e) {
  75.             e.printStackTrace();
  76.             messageBuilder = null;
  77.         } finally {
  78.             messageBuilder = null;
  79.         }
  80.     }
  81.  
  82.     // Write to Alert log file.
  83.     private void writeFileAlert(String message) {
  84.         FileWriter alertFile = null;
  85.         try {
  86.             // Start FileWriter -> This put the text in the last line.
  87.             alertFile = new FileWriter(this.fileSaveFolder.concat("alert.log"),
  88.                     true);
  89.             // Write, flush and close the FileWrite
  90.             alertFile.write(message + "\r\n");
  91.             alertFile.flush();
  92.             alertFile.close();
  93.         } catch (Exception e) {
  94.             e.printStackTrace();
  95.             alertFile = null;
  96.         } finally {
  97.             // Delete that for clean RAM.
  98.             alertFile = null;
  99.         }
  100.     }
  101.  
  102.     // Check folder and log files if not exist and create that...
  103.     private void checkSaveFolder() {
  104.         // Get folder
  105.         File saveFolder = new File(this.fileSaveFolder);
  106.  
  107.         // check if that exist :D
  108.         if (!saveFolder.exists())
  109.             saveFolder.mkdir();
  110.  
  111.         // Create file if that not exist.
  112.         saveFolder = new File(this.fileSaveFolder.concat("alert.log"));
  113.         if (!saveFolder.exists()) {
  114.             FileWriter alertFile;
  115.             try {
  116.                 alertFile = new FileWriter(
  117.                         this.fileSaveFolder.concat("alert.log"));
  118.                 PrintWriter pw = new PrintWriter(alertFile);
  119.                 pw.println("- Alert log started at: ".concat(this.getNowTime())
  120.                         .concat(" -"));
  121.                 pw.flush();
  122.                 pw.close();
  123.                 alertFile.close();
  124.  
  125.                 pw = null;
  126.                 alertFile = null;
  127.             } catch (IOException e) {
  128.                 // TODO Auto-generated catch block
  129.                 e.printStackTrace();
  130.             }
  131.         }
  132.         saveFolder = null;
  133.     }
  134.  
  135.     // Get time in string...
  136.     private String getNowTime() {
  137.         Date nowTime = new Date();
  138.         SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/y hh:mm:ss");
  139.         return dateFormat.format(nowTime);
  140.     }
  141.  
  142.     // This void is called by the gc.
  143.     protected void finalize() {
  144.         // Remove all.
  145.         this.isEnable = false;
  146.         this.fileLogEnable = false;
  147.         this.fileSaveFolder = null;
  148.         this.className = null;
  149.         this.systemProperties = null;
  150.     }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement