14

Using java.util.logging.Logger to output some log to the console just like this:

public static void main(String[] args) {
    Logger logger = Logger.getLogger("test");
    logger.info("Hello Wolrd!");
}

The output is:

FEB 16, 2012 10:17:43 AM com.abc.HelloWorld main
INFO: Hello World.

This seems to be OK, however...

We are using java.util.logging.Logger in all our Ant tasks (an internal standard) and we have a large ant project. The console output of a full cycle can be larger than 300KB, in which our own logger output taks at least 50.

Now I don't want to see the information about time, class name and method of Level.INFO outputs. Also the information line makes it hard to focus on the custom messages.

So is there any way to remove the first line (information of timestamp, class and method) from each output (or just from each Level.INFO output)?

Dante WWWW
  • 2,729
  • 1
  • 17
  • 33
  • 2
    @ziesemer Nice. Make a formatter, set it to a handler, add the handler to the logger, and set the logger not to use parent handlers. Upvote for helping~ – Dante WWWW Feb 16 '12 at 03:20

1 Answers1

8

See How do I get java logging output to appear on a single line?. However, the only difference is removing the first line, instead of putting it on one line.

To only do this for INFO levels, extend the formatter you want to conditionally modify (e.g. SimpleFormatter), and override the format method. You could do something like this:

public String format(LogRecord record){
  if(record.getLevel() == Level.INFO){
    return record.getMessage() + "\r\n";
  }else{
    return super.format(record);
  }
}

If you're doing this only for INFO, you probably don't need the "INFO: " prefix - but you could add it back on if you'd like.

Community
  • 1
  • 1
ziesemer
  • 27,712
  • 8
  • 86
  • 94
  • After reading the javadoc... I have to say that I hate the implement of java logging. If I want to make a handler only applied to Level.INFO, I have to extend Handler. And for this I can't use parent's Handler for Level.SEVERE so I have to add another handler... – Dante WWWW Feb 16 '12 at 03:46