1 /* 2 (C) Copyright IBM Corp. 2006, 2009 3 4 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE 5 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 6 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 7 8 You can obtain a current copy of the Eclipse Public License from 9 http://www.opensource.org/licenses/eclipse-1.0.php 10 11 @author : Alexander Wolf-Reber, IBM, a.wolf-reber@de.ibm.com 12 * 13 * Change History 14 * Flag Date Prog Description 15 *------------------------------------------------------------------------------- 16 * 1565892 2006-11-15 lupusalex Make SBLIM client JSR48 compliant 17 * 1745282 2007-06-29 ebak Uniform time stamps for log files 18 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL 19 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1) 20 */ 21 22 package org.metricshub.wbem.sblim.cimclient.internal.logging; 23 24 /*- 25 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 26 * WBEM Java Client 27 * ჻჻჻჻჻჻ 28 * Copyright 2023 - 2025 MetricsHub 29 * ჻჻჻჻჻჻ 30 * Licensed under the Apache License, Version 2.0 (the "License"); 31 * you may not use this file except in compliance with the License. 32 * You may obtain a copy of the License at 33 * 34 * http://www.apache.org/licenses/LICENSE-2.0 35 * 36 * Unless required by applicable law or agreed to in writing, software 37 * distributed under the License is distributed on an "AS IS" BASIS, 38 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 39 * See the License for the specific language governing permissions and 40 * limitations under the License. 41 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 42 */ 43 44 import java.io.PrintWriter; 45 import java.io.StringWriter; 46 import java.util.logging.Formatter; 47 import java.util.logging.LogRecord; 48 49 /** 50 * Class TraceFormatter implements the formatting algorithm for our console log. 51 * 52 */ 53 public class TraceFormatter extends Formatter { 54 private final String iLineSeparator = System.getProperty("line.separator"); 55 56 /** 57 * Ctor. 58 */ 59 public TraceFormatter() { 60 super(); 61 } 62 63 /* 64 * (non-Javadoc) 65 * 66 * @see java.util.logging.Formatter#format(java.util.logging.LogRecord) 67 */ 68 @Override 69 public String format(LogRecord pRecord) { 70 StringBuffer buffer = new StringBuffer(); 71 buffer.append(TimeStamp.format(pRecord.getMillis())); 72 buffer.append(" >"); 73 buffer.append(String.valueOf(pRecord.getThreadID())); 74 buffer.append("< "); 75 buffer.append(pRecord.getSourceMethodName()); 76 buffer.append(this.iLineSeparator); 77 buffer.append(pRecord.getLevel().getName()); 78 buffer.append(": "); 79 buffer.append(pRecord.getMessage()); 80 buffer.append(this.iLineSeparator); 81 if (pRecord.getThrown() != null) { 82 buffer.append("---> "); 83 StringWriter stringWriter = new StringWriter(); 84 PrintWriter printWriter = new PrintWriter(stringWriter); 85 pRecord.getThrown().printStackTrace(printWriter); 86 printWriter.close(); 87 buffer.append(stringWriter.toString()); 88 buffer.append(this.iLineSeparator); 89 } 90 return buffer.toString(); 91 } 92 }