Skip to main content

Logger java

Logger class
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

public class TestLogger {
 public static void main(String args[]) {

  try {
   // 2012-11-08 10:01:32 TestLogger main\nWARNING: Some problem
   Formatter formatter = new SimpleFormatter();

   // 2012-11-08 10:14:42 WARNING: TestLogger.main Some problem
   // Formatter formatter = new MyFormatter();   

   // boolean flag specifies append mode
   Handler handler = new FileHandler("MyLogFile.log", true);
   handler.setFormatter(formatter);

   Logger logger = Logger.getLogger("MyLoggerName");
   logger.addHandler(handler);
   // Message with level lower will be discarded
   logger.setLevel(Level.ALL);

   // Log a message
   logger.log(Level.WARNING, "Some problem");

  } catch (SecurityException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}
Formatter implementation which formats messages
import java.text.DateFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;

/**
 * Class formats a record to:
2012-11-08 10:14:42 WARNING: TestLogger.main * Some problem occurred * */ public class MyFormatter extends Formatter { @Override public String format(LogRecord record) { StringBuffer sb = new StringBuffer(); sb.append(DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new Date())).append(" ") .append(record.getLevel()).append(": ") .append(record.getSourceClassName()).append(".") .append(record.getSourceMethodName()).append(" ") .append(record.getMessage()).append("\n"); return sb.toString(); } }
SimpleDataFormat patterns to format dates (instead of DateFormat.getDateTimeInstance())
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestSimpleDateFormat {
 public static void main(String[] args) {

  // 20121108114353
  String pattern1 = "yyyyMMddhhmmss"; 
  // [20121108-114224]
  String pattern2 = "[yyyyMMdd-hhmmss]"; 
  // 2012-11-08 11:42:32
  String pattern3 = "yyyy-MM-dd hh:mm:ss";
  // 2012-11-08-11:42:42.949 
  String pattern4 = "yyyy-MM-dd-hh:mm:ss.S"; 

  SimpleDateFormat df = new SimpleDateFormat(pattern1);
  // df.applyPattern(pattern);
  System.out.println(df.format(new Date()));
 }
}

Comments

Popular posts from this blog

ShutDownHook - the last breath of an application

ShutDownHook allows you to perform operations (e.g. close opened resources, remove temporary files and so on) just before virtual machine shuts down. A documentation says that JVM may shut down in two cases: program finishes execution normally when all threads finishes their work (except deamon-threads like garbage collector) virtual machine receives a termination signal (for example after sending kill signal under unix or ctrl + C key combination under windows) Below is an example which will start endless loop which do nothing. But an important thing in this code is a part where shutDownHook is added. When an termination signal will be send to JVM a code from a run() method will be executed just before JVM shuts down. public class ShutDownHook { public static void main(String[] args) { Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("Close opened resources"); } }); while (true) { // do nothing } } }

scala Hello World

The code below prints Hello World! Hello.scala file (a name of file doesn't matter) object HelloWorld { def main(args: Array[String]) { println("Hello World!") } } Key word object is used to create a singleton object. To run this script use scala interpretor (check scala command line tools ).

Eclipse - shortcut keys

ctrl + O outline current class ctrl + L go to line ctrl + 3 entry point of everything ctrl + shift open resource ctrl + 1 quick fix (for example add import) ctrl + shift + o add all imports ctrl + shift + m add import ctrl + 2, L assign to local variable alt + shift + R rename ctrl + . next error ctrl + , prevoius error ctrl + m maximize text editor alt + shift + m extract method alt + shift + l extract local variable shift + enter new line before ctrl + shift + enter new line after ctrl + F3 outline selected class F3 open decalration (go to parent class) ctrl + H File search (rebinding) ctrl + shift + J generate javadoc F10 go to main menu bar shift + F10 context menu F12 activate editor shift + G find references in project ctrl + shift + G find references in workspace ctrl + shift + U find references in file ctrl + D delete line alt + up arrow move row or selection up alt + dow...