Örnek

Basit Bir Formatter Örneği

Eğer herhangi bir formatter verilmezse Console'a log aşağıdaki formatta atılır : pre:/listing Nis 27, 2013 5:20:31 PM com.fibiler.log.LogHelloWorldToFileTestApp main INFO: Hello World pre/: Bu format değiştirilebilir. Aşağıda bir formetter örneği görülmektedir : code:/java package com.fibiler.log; import java.io.*; import java.text.*; import java.util.*; import java.util.logging.*; public class LogFormatter extends java.util.logging.Formatter { @Override public String format(LogRecord record) { SimpleDateFormat dateFormat=new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String formatDate=dateFormat.format(new Date()); StringBuilder sb = new StringBuilder(); sb.append(formatDate).append(" - "). append(formatMessage(record)). append(System.getProperty("line.separator")); if (record.getThrown() != null) { try { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); record.getThrown().printStackTrace(pw); pw.close(); sb.append(sw.toString()); } catch (Exception ex) { ex.printStackTrace(); } } return sb.toString(); } } code/: Bu formatter ile tarih formatı dd.MM.yyyy HH:mm:ss şeklinde yapılmaktadır. Önce tarih yazılmakta ardından mesajın varsayılan biçimlendirmes yapılmakta ve yeni satır karakteri eklenmektedir. Örneğin üç kere peşpeşe HelloWorld yapıldığında eski sistem aşağıdaki gibi basacaktır : pre:/listing Nis 27, 2013 5:24:44 PM com.fibiler.log.LogHelloWorldToFileTestApp main INFO: Hello World Nis 27, 2013 5:24:44 PM com.fibiler.log.LogHelloWorldToFileTestApp main INFO: Hello World2 Nis 27, 2013 5:24:44 PM com.fibiler.log.LogHelloWorldToFileTestApp main INFO: Hello World3 pre/: Yeni yapılan LogFormatter aşağıdaki örnekte görüldüğü gibi set edilebilir : code:/java package com.fibiler.log; import java.io.*; import java.util.logging.*; public class LogHelloWorldToFileTestApp { public static void main( String[] args ) throws SecurityException, IOException { Logger logger = Logger. getLogger("com.fibiler.log.LogHelloWorldTestApp"); FileHandler fileHandler=new FileHandler("C:/Log",true); logger.addHandler(fileHandler); ConsoleHandler consoleHandler=new ConsoleHandler(); consoleHandler.setFormatter(new LogFormatter()); logger.setUseParentHandlers(false); logger.addHandler(consoleHandler); logger.log(Level.INFO, "Hello World"); logger.log(Level.INFO, "Hello World2"); logger.log(Level.INFO, "Hello World3"); } } code/: Yeni bir ConsoleHandler yaratılıp formatter olarak daha önce yarattığımız formatter verilmektedir. setUseParentHandlers ile üst sınıfın console handler'ı devre dışı bırakılmıştır. Yukarıdaki örnek çalıştırıldığında ise aşağıdaki gibi bir ekran görüntüsü olacaktır : pre:/listing 27.04.2013 17:25:44 - Hello World 27.04.2013 17:25:44 - Hello World2 27.04.2013 17:25:44 - Hello World3 pre/: Örneğin Level bilgisi aşağıdaki gibi bir kod değişikliğiyle eklenebilir : code/:java sb.append(formatDate).append(" - "). append(record.getLevel()).append(" - "). append(formatMessage(record)). append(System.getProperty("line.separator")); code/: Bu ekleme yaptıktan sonra aşağıdaki gibi görülecektir: pre:/listing 27.04.2013 17:28:51 - INFO - Hello World 27.04.2013 17:28:51 - INFO - Hello World2 27.04.2013 17:28:51 - INFO - Hello World3 pre/:
zafer.teker , 25.05.2018

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir