1 9 10 package org.mmbase.util.logging.log4j; 11 12 import org.mmbase.util.logging.Logging; 13 import org.apache.log4j.helpers.FormattingInfo; 14 import org.apache.log4j.helpers.PatternConverter; 15 import org.apache.log4j.helpers.PatternParser; 16 import org.apache.log4j.spi.LoggingEvent; 17 18 31 public class MMPatternParser extends PatternParser { 32 33 34 public MMPatternParser(String pattern) { 35 super(pattern); 36 } 37 38 public void finalizeConverter(char c) { 39 if (c == 'q') { 40 addConverter(new TruncatedLevelPatternConverter(formattingInfo)); 41 currentLiteral.setLength(0); 42 } else if (c == 'k') { 43 addConverter(new MemoryPatternConverter(formattingInfo)); 44 currentLiteral.setLength(0); 45 } else if (c == 'N') { 46 addConverter(new MachineNamePatternConverter(formattingInfo)); 47 currentLiteral.setLength(0); 48 } else { 49 super.finalizeConverter(c); 50 } 51 } 52 53 private static class TruncatedLevelPatternConverter extends PatternConverter { 54 TruncatedLevelPatternConverter(FormattingInfo formattingInfo) { 55 super(formattingInfo); 56 } 57 58 public String convert(LoggingEvent event) { 59 return event.getLevel().toString().substring(0, 3); 60 } 61 } 62 63 private static class MemoryPatternConverter extends PatternConverter { 64 MemoryPatternConverter(FormattingInfo formattingInfo) { 65 super(formattingInfo); 66 } 67 68 public String convert(LoggingEvent event) { 69 Runtime rt = Runtime.getRuntime(); 70 return "" + (rt.totalMemory() - rt.freeMemory()) / 1024; 71 } 72 } 73 76 private static class MachineNamePatternConverter extends PatternConverter { 77 MachineNamePatternConverter(FormattingInfo formattingInfo) { 78 super(formattingInfo); 79 } 80 81 public String convert(LoggingEvent event) { 82 return "" + Logging.getMachineName(); 83 } 84 } 85 } 86 | Popular Tags |