19 package org.sleuthkit.autopsy.coreutils;
 
   22 import java.io.IOException;
 
   23 import java.util.logging.FileHandler;
 
   24 import java.util.logging.Formatter;
 
   25 import java.util.logging.Handler;
 
   26 import java.sql.Timestamp;
 
   27 import java.util.Date;
 
   28 import java.util.logging.LogRecord;
 
   40     private static final Handler 
console = 
new java.util.logging.ConsoleHandler();
 
   47             FileHandler f = 
new FileHandler(logDirectory + File.separator + fileName, LOG_SIZE, LOG_FILE_COUNT);
 
   48             f.setEncoding(LOG_ENCODING);
 
   50                 case LOG_WITHOUT_STACK_TRACES:
 
   51                     f.setFormatter(
new Formatter() {
 
   53                         public String format(LogRecord record) {
 
   55                                 return (
new Date(record.getMillis())).toString() + 
" " 
   56                                         + record.getSourceClassName() + 
" " 
   57                                         + record.getSourceMethodName() + 
"\n" 
   58                                         + record.getLevel() + 
": " 
   59                                         + this.formatMessage(record) + 
"\n";
 
   64                 case LOG_WITH_STACK_TRACES:
 
   65                     f.setFormatter(
new Formatter() {
 
   67                         public String format(LogRecord record) {
 
   69                                 if (record.getThrown() != null) {
 
   71                                     StackTraceElement ele[] = record.getThrown().getStackTrace();
 
   72                                     String StackTrace = 
"";
 
   73                                     for (StackTraceElement ele1 : ele) {
 
   74                                         StackTrace += 
"\t" + ele1.toString() + 
"\n";
 
   77                                     return (
new Timestamp(record.getMillis())).toString() + 
" " 
   78                                             + record.getSourceClassName() + 
" " 
   79                                             + record.getSourceMethodName() + 
"\n" 
   80                                             + record.getLevel() + 
": " 
   81                                             + this.formatMessage(record) + 
"\n" 
   82                                             + record.getThrown().toString() + 
": " 
   86                                     return (
new Timestamp(record.getMillis())).toString() + 
" " 
   87                                             + record.getSourceClassName() + 
" " 
   88                                             + record.getSourceMethodName() + 
"\n" 
   89                                             + record.getLevel() + 
": " 
   90                                             + this.formatMessage(record) + 
"\n";
 
   98         } 
catch (IOException e) {
 
   99             throw new RuntimeException(
"Error initializing " + fileName + 
" file handler", e); 
 
  109         if (null != directoryPath && !directoryPath.isEmpty()) {
 
  110             File directory = 
new File(directoryPath);
 
  111             if (directory.exists() && directory.canWrite()) {
 
  113                     userFriendlyLogFile.close();
 
  114                     userFriendlyLogFile = 
createFileHandler(directoryPath, LOG_WITHOUT_STACK_TRACES);
 
  115                     developersLogFile.close();
 
  132         return new Logger(name, null);
 
  148         return new Logger(name, resourceBundleName);
 
  151     private Logger(String name, String resourceBundleName) {
 
  152         super(name, resourceBundleName);
 
  154             super.addHandler(console);
 
  157             super.setUseParentHandlers(
false);
 
  158             super.addHandler(userFriendlyLogFile);
 
  159             super.addHandler(developersLogFile);
 
static Version.Type getBuildType()
static final int LOG_SIZE
static final String LOG_WITHOUT_STACK_TRACES
static FileHandler createFileHandler(String logDirectory, String fileName)
static void setLogDirectory(String directoryPath)
Logger(String name, String resourceBundleName)
static final int LOG_FILE_COUNT
static final String LOG_ENCODING
static FileHandler userFriendlyLogFile
static final Object fileHandlerLock
static final String LOG_WITH_STACK_TRACES
static Logger getLogger(String name, String resourceBundleName)
static final Handler console
static Logger getLogger(String name)
static FileHandler developersLogFile