com.itextpdf.text.log.SysoLogger Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of itextpdf Show documentation
Show all versions of itextpdf Show documentation
iText, a free Java-PDF library
/*
* $Id: SysoLogger.java 5195 2012-06-18 14:25:30Z blowagie $
*
* This file is part of the iText (R) project.
* Copyright (c) 1998-2012 1T3XT
* BVBA Authors: Balder Van Camp, Emiel Ackermann, et al.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY 1T3XT, 1T3XT DISCLAIMS THE WARRANTY OF NON
* INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General License for more
* details. You should have received a copy of the GNU Affero General License
* along with this program; if not, see http://www.gnu.org/licenses or write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA, 02110-1301 USA, or download the license from the following URL:
* http://itextpdf.com/terms-of-use/
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General License.
*
* In accordance with Section 7(b) of the GNU Affero General License, a covered
* work must retain the producer line in every PDF that is created or
* manipulated using iText.
*
* You can be released from the requirements of the license by purchasing a
* commercial license. Buying such a license is mandatory as soon as you develop
* commercial activities involving the iText software without disclosing the
* source code of your own applications. These activities include: offering paid
* services to customers as an ASP, serving PDFs on the fly in a web
* application, shipping iText with a closed source product.
*
* For more information, please contact iText Software Corp. at this address:
* [email protected]
*/
package com.itextpdf.text.log;
/**
* A Simple System.out logger.
* @author redlab_be
*
*/
public class SysoLogger implements Logger {
private String name;
private final int shorten;
/**
* Defaults packageReduce to 1.
*/
public SysoLogger() {
this(1);
}
/**
* Amount of characters each package name should be reduced with.
* @param packageReduce
*
*/
public SysoLogger(final int packageReduce) {
this.shorten = packageReduce;
}
/**
* @param klass
* @param shorten
*/
protected SysoLogger(final String klass, final int shorten) {
this.shorten = shorten;
this.name = klass;
}
public Logger getLogger(final Class> klass) {
return new SysoLogger(klass.getName(), shorten);
}
/* (non-Javadoc)
* @see com.itextpdf.text.log.Logger#getLogger(java.lang.String)
*/
public Logger getLogger(final String name) {
return new SysoLogger("[itext]", 0);
}
public boolean isLogging(final Level level) {
return true;
}
public void warn(final String message) {
System.out.println(String.format("%s WARN %s", shorten(name), message));
}
/**
* @param name2
* @return
*/
private String shorten(final String className) {
if (shorten != 0) {
StringBuilder target = new StringBuilder();
String name = className;
int fromIndex = className.indexOf('.');
while (fromIndex != -1) {
int parseTo = (fromIndex < shorten) ? (fromIndex) : (shorten);
target.append(name.substring(0, parseTo));
target.append('.');
name = name.substring(fromIndex + 1);
fromIndex = name.indexOf('.');
}
target.append(className.substring(className.lastIndexOf('.') + 1));
return target.toString();
}
return className;
}
public void trace(final String message) {
System.out.println(String.format("%s TRACE %s", shorten(name), message));
}
public void debug(final String message) {
System.out.println(String.format("%s DEBUG %s", shorten(name), message));
}
public void info(final String message) {
System.out.println(String.format("%s INFO %s", shorten(name), message));
}
public void error(final String message) {
System.out.println(String.format("%s ERROR %s", name, message));
}
public void error(final String message, final Exception e) {
System.out.println(String.format("%s ERROR %s", name, message));
e.printStackTrace(System.out);
}
}