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

AIX and SOLARIS maintenance commands

AIX and SOLARIS uname unix name, check which unix is used uname // OS name uname -r // OS version uname -a // OS name, host, version df info about disk space df -v // percent of used blocks df -vk // 1024-byte blocks df -vm // MB blocks df -gm // GB blocks AIX topas statistics about the activity on the local system // all statistics topas // -w WLM - WorkLoad Management topas -w SOLARIS prstat identify which processes are consuming the CPU // -s cpu flag sorts by CPU usage (default), -n 5 flag restricts top five processes prstat -s cpu -n 5 // -a summary of a consumption of resources by an user prstat -s cpu -a prstat -s cpu -a -n 5 ps process status ps -eo pid,pmem,vsz,rss,comm | sort -rnk2 | head

Unix - useful command line tools

This post lists unix command line tools which are very helpful during a work with these systems. alias create alias for a command // use aliast to a command alias ls='ls -ltr' awk // split text into tokens using '.' separator echo testFile.txt | awk -F'.' '{print$2}' // prints 'txt' chmod set access privileges to a file // owner rwx, group r-x, others --- chmod 750 fileName.txt Meaning of numbers: owner, group, others (respectively) 4 - read 2 - write 1 - execute find search for files // search for all files in a current directory and display lines with a 'stringToFind' find . -name "*.*" | xargs grep 'stringToFind' // search for a file and skipp all info about errors find . -name 'testFile.txt' 2> /dev/null grep use regexp to display lines from a file // display all lines without a # sign grep ^[^#] testFile.txt // display all lines with a # sign grep ^# testFile.txt gzip compress and decompre...

Java read file (entire or line by line)

Four ways to read a file in java. I have tested an execution time of them using 1,37 MB text file with 108825 lines. Result of tests is in a first comment of each method and is specified in milliseconds. 1 Read entire file at once 1.1 FileInputStream with read() // execution time: 7 - 8 ms ByteArrayOutputStream buffer = new ByteArrayOutputStream(); File file = new File("C:\\test.txt"); InputStream is = new FileInputStream(file); byte[] temp = new byte[1024]; int read; while ((read = is.read(temp)) >= 0) { buffer.write(temp, 0, read); } byte[] data = buffer.toByteArray(); System.out.println(new String(data)); PS: remember that read(byte[] b) doesn't do what you think it does -> link 1.2 FileInputStream with readFully() // execution time: 11 - 12 ms File file = new File("C:\\test.txt"); DataInput input = new DataInputStream(new FileInputStream(file)); byte[] bufferArray = new byte[(int) file.length()]; input.readFully(bufferArray); String value = new ...