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