Changeset 3d18255e


Ignore:
Timestamp:
Jun 8, 2011 8:16:48 PM (9 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
7f96e27
Parents:
c5f04ee
Message:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/util/LogManager.java

    rc5f04ee r3d18255e  
    1818import java.text.SimpleDateFormat;
    1919import java.util.ArrayList;
    20 import java.util.HashMap;
    2120import java.util.Iterator;
    2221import java.util.LinkedList;
    2322import java.util.List;
    24 import java.util.Map;
    2523import java.util.Properties;
    2624import java.util.Queue;
    2725import java.util.Set;
    2826import java.util.TimeZone;
    29 import java.util.TreeMap;
    3027import java.util.concurrent.ConcurrentHashMap;
    3128import java.util.concurrent.LinkedBlockingQueue;
    3229
    3330import net.i2p.I2PAppContext;
     31import net.i2p.data.DataHelper;
    3432
    3533/**
     
    287285
    288286        Properties p = new Properties();
    289         FileInputStream fis = null;
    290         try {
    291             fis = new FileInputStream(cfgFile);
    292             p.load(fis);
     287        try {
     288            DataHelper.loadProps(p, cfgFile);
    293289            _configLastRead = _context.clock().now();
    294290        } catch (IOException ioe) {
    295291            System.err.println("Error loading logger config from " + cfgFile.getAbsolutePath());
    296         } finally {
    297             if (fis != null) try {
    298                 fis.close();
    299             } catch (IOException ioe) { // nop
    300             }
    301292        }
    302293        parseConfig(p);
     
    364355        parseLimits(config, PROP_RECORD_PREFIX);
    365356    }
     357
    366358    private void parseLimits(Properties config, String recordPrefix) {
    367359        _limits.clear();
     
    560552    }
    561553
     554    /** @return success */
    562555    public boolean saveConfig() {
    563         String config = createConfig();
    564         FileOutputStream fos = null;
    565         try {
    566             fos = new FileOutputStream(_locationFile);
    567             fos.write(config.getBytes());
     556        Properties props = createConfig();
     557        try {
     558            DataHelper.storeProps(props, _locationFile);
    568559            return true;
    569560        } catch (IOException ioe) {
    570561            getLog(LogManager.class).error("Error saving the config", ioe);
    571562            return false;
    572         } finally {
    573             if (fos != null) try { fos.close(); } catch (IOException ioe) {}
    574         }
    575     }
    576    
    577     private String createConfig() {
    578         StringBuilder buf = new StringBuilder(8*1024);
    579         buf.append(PROP_FORMAT).append('=').append(new String(_format)).append('\n');
    580         buf.append(PROP_DATEFORMAT).append('=').append(_dateFormatPattern).append('\n');
    581         buf.append(PROP_DISPLAYONSCREEN).append('=').append((_displayOnScreen ? "TRUE" : "FALSE")).append('\n');
     563        }
     564    }
     565   
     566    private Properties createConfig() {
     567        Properties rv = new OrderedProperties();
     568        rv.setProperty(PROP_FORMAT, new String(_format));
     569        rv.setProperty(PROP_DATEFORMAT, _dateFormatPattern);
     570        rv.setProperty(PROP_DISPLAYONSCREEN, Boolean.toString(_displayOnScreen));
    582571        String filenameOverride = _context.getProperty(FILENAME_OVERRIDE_PROP);
    583572        if (filenameOverride == null)
    584             buf.append(PROP_FILENAME).append('=').append(_baseLogfilename).append('\n');
     573            rv.setProperty(PROP_FILENAME, _baseLogfilename);
    585574        else // this isn't technically correct - this could mess with some funky scenarios
    586             buf.append(PROP_FILENAME).append('=').append(DEFAULT_FILENAME).append('\n');
     575            rv.setProperty(PROP_FILENAME, DEFAULT_FILENAME);
    587576       
    588577        if (_fileSize >= 1024*1024)
    589             buf.append(PROP_FILESIZE).append('=').append( (_fileSize / (1024*1024))).append("m\n");
     578            rv.setProperty(PROP_FILESIZE,  (_fileSize / (1024*1024)) + "m");
    590579        else if (_fileSize >= 1024)
    591             buf.append(PROP_FILESIZE).append('=').append( (_fileSize / (1024))).append("k\n");
     580            rv.setProperty(PROP_FILESIZE,  (_fileSize / (1024))+ "k");
    592581        else if (_fileSize > 0)
    593             buf.append(PROP_FILESIZE).append('=').append(_fileSize).append('\n');
     582            rv.setProperty(PROP_FILESIZE, Integer.toString(_fileSize));
    594583        // if <= 0, dont specify
    595584       
    596         buf.append(PROP_ROTATIONLIMIT).append('=').append(_rotationLimit).append('\n');
    597         buf.append(PROP_DEFAULTLEVEL).append('=').append(Log.toLevelString(_defaultLimit)).append('\n');
    598         buf.append(PROP_DISPLAYONSCREENLEVEL).append('=').append(Log.toLevelString(_onScreenLimit)).append('\n');
    599         buf.append(PROP_CONSOLEBUFFERSIZE).append('=').append(_consoleBufferSize).append('\n');
    600 
    601         buf.append("# log limit overrides:\n");
    602        
    603         TreeMap limits = new TreeMap();
     585        rv.setProperty(PROP_ROTATIONLIMIT, Integer.toString(_rotationLimit));
     586        rv.setProperty(PROP_DEFAULTLEVEL, Log.toLevelString(_defaultLimit));
     587        rv.setProperty(PROP_DISPLAYONSCREENLEVEL, Log.toLevelString(_onScreenLimit));
     588        rv.setProperty(PROP_CONSOLEBUFFERSIZE, Integer.toString(_consoleBufferSize));
     589
    604590        for (LogLimit lim : _limits) {
    605             limits.put(lim.getRootName(), Log.toLevelString(lim.getLimit()));
    606         }
    607         for (Iterator iter = limits.entrySet().iterator(); iter.hasNext(); ) {
    608             Map.Entry entry = (Map.Entry)iter.next();
    609             String path = (String)entry.getKey();
    610             String lim = (String)entry.getValue();
    611             buf.append(PROP_RECORD_PREFIX).append(path);
    612             buf.append('=').append(lim).append('\n');
    613         }
    614        
    615         return buf.toString();
     591            rv.setProperty(PROP_RECORD_PREFIX + lim.getRootName(), Log.toLevelString(lim.getLimit()));
     592        }
     593       
     594        return rv;
    616595    }
    617596
Note: See TracChangeset for help on using the changeset viewer.