All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jpedal.utils.LogWriter Maven / Gradle / Ivy

The newest version!
/*
 * ===========================================
 * Java Pdf Extraction Decoding Access Library
 * ===========================================
 *
 * Project Info:  http://www.idrsolutions.com
 * Help section for developers at http://www.idrsolutions.com/support/
 *
 * (C) Copyright 1997-2015 IDRsolutions and Contributors.
 *
 * This file is part of JPedal/JPDF2HTML5
 *
     This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


 *
 * ---------------
 * LogWriter.java
 * ---------------
 */
package org.jpedal.utils;

import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import org.jpedal.*;

/**
 * 

logs all activity. And some low level variables/methods * as it is visible to all classes. *

Provided for debugging and NOT officially part of the API */ public class LogWriter { /**allow user to scan log output*/ public static LogScanner logScanner; /**amount of debugging detail we put in log*/ public static boolean debug; /**filename of logfile*/ public static String log_name; /**flag we can set to signal code being tested*/ public static boolean testing; /**if we echo to console. VERY USEFUL for debugging*/ private static boolean verbose; /**Set of filters passed by -Dorg.jpedal.inclusiveLogFilters JVM argument. * Is null if the argument doesn't exist. */ private static final Set filterValues = getFilterSet(); /** * Creates a set of filter values from JVM argument -Dorg.jpedal.inclusiveLogFilters. * The arguments are passed in as comma-separated values. * * @return null if the argument is not found, otherwise a HashSet of the contained values */ private static Set getFilterSet(){ final String filters = System.getProperty("org.jpedal.inclusiveLogFilters"); Set filterSet = null; if(filters != null){ filterSet = new HashSet(Arrays.asList(filters.toLowerCase().split("[,]"))); } return filterSet; } public static final boolean isOutput(){ return verbose || logScanner!=null; } /////////////////////////////////////////////// public static final void writeLog( final String message ) { /** * ignore any logging if we have set some inclusive values with * * -Dorg.jpedal.inclusiveLogFilters="memory,error" * * Values are case-insensitve and example above would only output messages containing 'memory' or 'error') */ if(filterValues != null && message != null){ boolean found = false; for(final String s : filterValues){ if(message.toLowerCase().contains(s)){ found = true; break; } } if(!found){ return; } } //implement your own version of org.jpedal.utils.LogScanner //and set will then allow you to track any error messages if(logScanner!=null) { logScanner.message(message); } /** * write message to pane if client active * and put to front */ if(verbose) { System.out.println( message ); } if( log_name != null ) { //write message final PrintWriter log_file; try { log_file = new PrintWriter( new FileWriter( log_name, true ) ); if(!testing) { log_file.println(TimeNow.getTimeNow()+ ' ' +message); //write date to the log } log_file.println( message ); log_file.flush(); log_file.close(); }catch( final Exception e ){ System.err.println( "Exception " + e + " attempting to write to log file " + log_name ); } } } ////////////////////////////////////////////// /** * setup log file and check it is readable * also sets command line options */ public static final void setupLogFile(final String command_line_values) { if( command_line_values != null ) { //verbose mode echos to screen if( command_line_values.indexOf('v') != -1 ) { verbose = true; writeLog( "Verbose on" ); }else { verbose = false; } } //write out info if(!testing){ // writeLog( "Software started - " + TimeNow.getTimeNow() ); } writeLog( "=======================================================" ); } /////////////////////////////////////////////////////////// /** write out logging information for forms, * print is a boolean flag, if true prints to the screen */ public static void writeFormLog(final String message, final boolean print) { if(print) { System.out.println("[forms] "+message); } writeLog("[forms] "+message); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy