Author: remi
Date: 2009-01-15 00:08:59 +0100 (Thu, 15 Jan 2009)
New Revision: 3452

Added:
   software_suite_v2/libraries/java/simple-logger/
   software_suite_v2/libraries/java/simple-logger/trunk/
   software_suite_v2/libraries/java/simple-logger/trunk/pom.xml
   software_suite_v2/libraries/java/simple-logger/trunk/src/
   software_suite_v2/libraries/java/simple-logger/trunk/src/main/
   software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/
   software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/
   software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/App.java
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLogger.java
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerConstants.java
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerLevelsEnum.java
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerListener.java
   
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerTargetsEnum.java
Log:
* added the 'simple-logger' package project. (Javadoc comments will be added 
tomorrow ...)
This package is stand-alone and provide a formated logs like the TuxHTTPServer, 
tuxdriver, tuxosl, etc.. ones

Added: software_suite_v2/libraries/java/simple-logger/trunk/pom.xml
===================================================================
--- software_suite_v2/libraries/java/simple-logger/trunk/pom.xml                
                (rev 0)
+++ software_suite_v2/libraries/java/simple-logger/trunk/pom.xml        
2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,35 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.kysoh.commons.simplelogger</groupId>
+  <artifactId>simple-logger</artifactId>
+  <packaging>jar</packaging>
+  <version>0.0.1</version>
+  <name>simple-logger</name>
+  <url>http://maven.apache.org</url>
+  
+  <build>
+       <plugins>
+        <plugin>
+               <groupId>org.apache.maven.plugins</groupId>
+               <artifactId>maven-jar-plugin</artifactId>
+               <configuration>
+                   <archive>
+                       <!--Set the manifest : mainclass and classpath-->
+                       <manifest>
+                           
<mainClass>com.kysoh.commons.simplelogger.App</mainClass>
+                       </manifest>
+                   </archive>
+               </configuration>
+           </plugin>
+           <plugin>
+               <groupId>org.apache.maven.plugins</groupId>
+               <artifactId>maven-compiler-plugin</artifactId>
+               <configuration>
+                   <source>1.6</source>
+                   <target>1.6</target>
+               </configuration>
+           </plugin>
+       </plugins>
+    </build>
+</project>


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/pom.xml
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/App.java
===================================================================
--- 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/App.java
                          (rev 0)
+++ 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/App.java
  2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,46 @@
+package com.kysoh.commons.simplelogger;
+
+/**
+ * Hello world!
+ *
+ */
+public class App 
+{
+    public static void main( String[] args )
+    {
+       class SimpleLoggerObserver implements SimpleLoggerListener
+       {
+               public void newMessage(String atTime, String messageType, 
String messageString)
+               {
+                       System.out.println(String.format(
+                                       "SimpleLogger newMessage event : 
At='%s' Type='%s' Message='%s'", 
+                                       messageType, atTime, messageString));
+               }
+               
+               public void newMessageFormated(String message)
+               {
+                       System.out.print(String.format(
+                                       "SimpleLogger newMessageFormated event 
: %s", 
+                                       message));
+               }
+       }
+       
+       SimpleLoggerObserver simpleLoggerObserver = new SimpleLoggerObserver();
+       
+       SimpleLogger simpleLogger = new SimpleLogger("SimpleLogger");
+       System.out.println(simpleLogger.getLogFilePath());
+       simpleLogger.addListener(simpleLoggerObserver);
+       simpleLogger.setTarget(SimpleLoggerTargetsEnum.FILE);
+       simpleLogger.setLevel(SimpleLoggerLevelsEnum.DEBUG);
+       if (!simpleLogger.reset())
+       {
+               System.out.println("Can't create the log file");
+               System.exit(1);
+       }
+       simpleLogger.logDebug("This is a debug message");
+       simpleLogger.logInfo("This is an info message");
+       simpleLogger.logWarning("This is a warning message");
+       simpleLogger.logError("This is an error message");
+       System.exit(0);
+    }
+}


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/App.java
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLogger.java
===================================================================
--- 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLogger.java
                         (rev 0)
+++ 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLogger.java
 2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,210 @@
+package com.kysoh.commons.simplelogger;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+
+public class SimpleLogger
+{
+       private SimpleLoggerLevelsEnum level;
+       private SimpleLoggerTargetsEnum target;
+       
+       private Object logMutex;
+       
+       private String logName;
+       private File logPath;
+       private File logFile;
+       
+       private SimpleDateFormat simpleDateFormat = new 
SimpleDateFormat("HH:mm:ss");
+       
+       private final Collection<SimpleLoggerListener> simpleLoggerListeners = 
new ArrayList<SimpleLoggerListener>();
+       
+       public SimpleLogger(String applicationName, String logFilePath)
+       {
+               level = SimpleLoggerLevelsEnum.ERROR;
+               target = SimpleLoggerTargetsEnum.FILE;
+               logPath = new File(logFilePath);
+               // Check if the logFilePath is configured to a valid directory.
+               if (!logPath.isDirectory())
+               {
+                       // Get the default path
+                       // For Windows
+                       if 
(System.getProperty("os.name").toLowerCase().contains("windows"))
+                       {
+                               logPath = new 
File(SimpleLoggerConstants.DEFAULT_WINDOWS_PATH);
+                       }
+                       // For Linux
+                       else
+                       {
+                               logPath = new 
File(SimpleLoggerConstants.DEFAULT_LINUX_PATH);
+                       }
+               }
+               logName = String.format("%s.log", applicationName);
+               logFile = new File(logPath.getAbsolutePath() + File.separator + 
logName);
+               logMutex = new Object();
+       }
+       
+       public SimpleLogger(String applicationName)
+       {
+               this(applicationName, "");
+       }
+       
+       public String getLogFilePath()
+       {
+               synchronized (logMutex)
+               {
+                       return logFile.getAbsolutePath();
+               }
+       }
+       
+       public void setLevel(SimpleLoggerLevelsEnum level)
+       {
+               synchronized (logMutex)
+               {
+                       this.level = level;
+               }
+       }
+       
+       public void setTarget(SimpleLoggerTargetsEnum target)
+       {
+               synchronized (logMutex)
+               {
+                       this.target = target;
+               }
+       }
+       
+       public boolean reset()
+       {
+               synchronized (logMutex)
+               {
+                       try
+                       {
+                               if (logFile.isFile())
+                               {
+                                       logFile.delete();
+                               }
+                               logFile.createNewFile();
+                       }
+                       catch (IOException exception)
+                       {
+                               if (target.getValue() >= 
SimpleLoggerTargetsEnum.BOTH.getValue())
+                               {
+                                       System.out.println(String.format(
+                                                       "SimpleLogger : Can't 
reset the file [%s] because (%s)",
+                                                       
logFile.getAbsolutePath(), exception.getMessage()));
+                               }
+                               return false;
+                       }
+                       return true;
+               }
+       }
+       
+       private void logMessage(String messageType, String messageString)
+       {
+               Date date = new Date();
+               String formatedMessage = String.format("[%s] at (%s) : %s%s", 
+                               messageType,
+                               simpleDateFormat.format(date),
+                               messageString,
+                               SimpleLoggerConstants.LINEEND);
+               synchronized (logMutex)
+               {
+                       if (target.getValue() <= 
SimpleLoggerTargetsEnum.BOTH.getValue())
+                       {
+                               // Write in the log file
+                               if (logFile.isFile())
+                               {
+                                       try
+                                       {
+                                               FileOutputStream 
fileOutputStream = new FileOutputStream(
+                                                               logFile, true);
+                                               Writer writer = new 
OutputStreamWriter(fileOutputStream,
+                                                               "UTF8");
+                                               writer.append(formatedMessage);
+                                               writer.flush();
+                                               writer.close();
+                                       }
+                                       catch (Exception exception)
+                                       {
+                                               // Not handling this exception.
+                                       }
+                               }
+                       }
+                       if (target.getValue() >= 
SimpleLoggerTargetsEnum.BOTH.getValue())
+                       {
+                               System.out.print(formatedMessage);
+                       }
+               }
+               // Notify event
+               for (SimpleLoggerListener simpleLoggerListener : 
simpleLoggerListeners)
+               {
+                       simpleLoggerListener.newMessage(
+                                       messageType, 
+                                       simpleDateFormat.format(date),
+                                       messageString);
+                       
simpleLoggerListener.newMessageFormated(formatedMessage);
+               }
+       }
+       
+       public void logError(String message)
+       {
+               if (level.getValue() <= SimpleLoggerLevelsEnum.ERROR.getValue())
+               {
+                       logMessage("Error", message);
+               }
+       }
+       
+       public void logWarning(String message)
+       {
+               if (level.getValue() <= 
SimpleLoggerLevelsEnum.WARNING.getValue())
+               {
+                       logMessage("Warning", message);
+               }
+       }
+       
+       public void logInfo(String message)
+       {
+               if (level.getValue() <= SimpleLoggerLevelsEnum.INFO.getValue())
+               {
+                       logMessage("Info", message);
+               }
+       }
+       
+       public void logDebug(String message)
+       {
+               if (level.getValue() <= SimpleLoggerLevelsEnum.DEBUG.getValue())
+               {
+                       logMessage("Debug", message);
+               }
+       }
+       
+       public void addListener(SimpleLoggerListener simpleLoggerListener)
+       {
+               synchronized (logMutex)
+               {
+                       simpleLoggerListeners.add(simpleLoggerListener);
+               }
+       }
+       
+       public void removeListener(SimpleLoggerListener simpleLoggerListener)
+       {
+               synchronized (logMutex)
+               {
+                       simpleLoggerListeners.remove(simpleLoggerListener);
+               }
+       }
+       
+       public void clearListeners()
+       {
+               synchronized (logMutex)
+               {
+                       simpleLoggerListeners.clear();
+               }
+       }
+}


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLogger.java
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerConstants.java
===================================================================
--- 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerConstants.java
                                (rev 0)
+++ 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerConstants.java
        2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,8 @@
+package com.kysoh.commons.simplelogger;
+
+interface SimpleLoggerConstants
+{
+       public static String DEFAULT_WINDOWS_PATH = 
System.getProperty("user.home");
+       public static String DEFAULT_LINUX_PATH = "/var/log";
+       public static String LINEEND = System.getProperty( "line.separator" );
+}


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerConstants.java
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerLevelsEnum.java
===================================================================
--- 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerLevelsEnum.java
                               (rev 0)
+++ 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerLevelsEnum.java
       2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,28 @@
+package com.kysoh.commons.simplelogger;
+
+public enum SimpleLoggerLevelsEnum
+{
+       DEBUG(0),
+       INFO(1),
+       WARNING(2),
+       ERROR(3);
+       
+       private final int value;
+       
+       /**
+        * Constructor.
+        */
+       private SimpleLoggerLevelsEnum(int value)
+       {
+               this.value = value;
+       }
+       
+       /**
+        * Get the enumerated value.
+        * @return The enumerated value.
+        */
+       public int getValue()
+       {
+               return this.value;
+       }
+}


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerLevelsEnum.java
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerListener.java
===================================================================
--- 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerListener.java
                         (rev 0)
+++ 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerListener.java
 2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,8 @@
+package com.kysoh.commons.simplelogger;
+
+public interface SimpleLoggerListener
+{
+       void newMessage(String atTime, String messageType, String 
messageString);
+       
+       void newMessageFormated(String message);
+}


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerListener.java
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerTargetsEnum.java
===================================================================
--- 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerTargetsEnum.java
                              (rev 0)
+++ 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerTargetsEnum.java
      2009-01-14 23:08:59 UTC (rev 3452)
@@ -0,0 +1,27 @@
+package com.kysoh.commons.simplelogger;
+
+public enum SimpleLoggerTargetsEnum
+{
+       FILE(0),
+       BOTH(1),
+       SHELL(2);
+       
+       private final int value;
+       
+       /**
+        * Constructor.
+        */
+       private SimpleLoggerTargetsEnum(int value)
+       {
+               this.value = value;
+       }
+       
+       /**
+        * Get the enumerated value.
+        * @return The enumerated value.
+        */
+       public int getValue()
+       {
+               return this.value;
+       }
+}


Property changes on: 
software_suite_v2/libraries/java/simple-logger/trunk/src/main/java/com/kysoh/commons/simplelogger/SimpleLoggerTargetsEnum.java
___________________________________________________________________
Name: svn:keywords
   + Id


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to