Changeset b9bc254


Ignore:
Timestamp:
Apr 16, 2018 11:06:18 AM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
d189c39
Parents:
8c0e82d
Message:

SusiMail?: Move logging to router logs (ticket #2191)

Location:
apps/susimail/src/src/i2p/susi
Files:
1 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/util/Config.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.util;
    2525
    26 import i2p.susi.debug.Debug;
    27 
    2826import java.io.File;
    2927import java.io.FileInputStream;
     
    3533import net.i2p.I2PAppContext;
    3634import net.i2p.data.DataHelper;
     35import net.i2p.util.Log;
    3736import net.i2p.util.OrderedProperties;
    3837
     
    9392        public synchronized static void reloadConfiguration()
    9493        {
    95                 // DEBUG level logging won't work here since we haven't loaded the config yet...
     94                I2PAppContext ctx = I2PAppContext.getGlobalContext();
    9695                properties = new Properties();
    9796                InputStream iv = null;
     
    10099                        properties.load(iv);
    101100                } catch (IOException e) {
    102                         Debug.debug(Debug.ERROR, "Could not open WEB-INF/classes/susimail.properties (possibly in jar), reason: " + e);
     101                        Log log = ctx.logManager().getLog(Config.class);
     102                        log.error("Could not open WEB-INF/classes/susimail.properties (possibly in jar)", e);
    103103                } finally {
    104104                        if(iv != null) try { iv.close(); } catch(IOException ioe) {}
     
    111111                        }
    112112                } catch (IOException e) {
    113                         Debug.debug(Debug.ERROR, "Could not open susimail.config, reason: " + e);
     113                        Log log = ctx.logManager().getLog(Config.class);
     114                        log.error("Could not open susimail.config", e);
    114115                }
    115116        }
  • apps/susimail/src/src/i2p/susi/webmail/Mail.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.util.Buffer;
    2827import i2p.susi.util.Config;
     
    5251import net.i2p.data.DataHelper;
    5352import net.i2p.servlet.util.ServletUtil;
     53import net.i2p.util.Log;
    5454import net.i2p.util.RFC822Date;
    5555import net.i2p.util.SystemVersion;
     
    9797
    9898        public boolean markForDeletion;
     99        private final Log _log;
    99100       
    100101        public Mail(String uidl) {
     
    109110                quotedDate = unknown;
    110111                error = "";
     112                _log = I2PAppContext.getGlobalContext().logManager().getLog(Mail.class);
    111113        }
    112114
     
    187189                        success = true;
    188190                } catch (IOException de) {
    189                         Debug.debug(Debug.ERROR, "Decode error", de);
     191                        _log.error("Decode error", de);
    190192                } catch (RuntimeException e) {
    191                         Debug.debug(Debug.ERROR, "Parse error", e);
     193                        _log.error("Parse error", e);
    192194                } finally {
    193195                        if (in != null) try { in.close(); } catch (IOException ioe) {}
     
    411413                                        hl.decode(eofin, decoded);
    412414                                        if (!eofin.wasFound())
    413                                                 Debug.debug(Debug.DEBUG, "EOF hit before \\r\\n\\r\\n in Mail");
     415                                                if (_log.shouldDebug()) _log.debug("EOF hit before \\r\\n\\r\\n in Mail");
    414416                                        // Fixme UTF-8 to bytes to UTF-8
    415417                                        headerLines = DataHelper.split(new String(decoded.getContent(), decoded.getOffset(), decoded.getLength()), "\r\n");
     
    502504                                catch( Exception e ) {
    503505                                        error += "Error parsing mail header: " + e.getClass().getName() + '\n';
    504                                         Debug.debug(Debug.ERROR, "Parse error", e);
     506                                        _log.error("Parse error", e);
    505507                                }               
    506508                        }
  • apps/susimail/src/src/i2p/susi/webmail/MailCache.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.util.Config;
    2827import i2p.susi.util.Buffer;
     
    4948import net.i2p.util.FileUtil;
    5049import net.i2p.util.I2PAppThread;
     50import net.i2p.util.Log;
    5151
    5252/**
     
    7171        private boolean _isLoaded;
    7272        private final boolean _isDrafts;
     73        private final Log _log;
    7374       
    7475        /** Includes header, headers are generally 1KB to 1.5 KB,
     
    8586        MailCache(I2PAppContext ctx, POP3MailBox mailbox, String folderName,
    8687                  String host, int port, String user, String pass) throws IOException {
     88                _log = ctx.logManager().getLog(MailCache.class);
    8789                this.mailbox = mailbox;
    8890                mails = new Hashtable<String, Mail>();
     
    243245                if (_isLoaded || _loadInProgress != null)
    244246                        return false;
    245                 Debug.debug(Debug.DEBUG, "Loading folder " + folderName);
     247                if (_log.shouldDebug()) _log.debug("Loading folder " + folderName);
    246248                Thread t = new I2PAppThread(new LoadMailRunner(nml), "Email loader");
    247249                _loadInProgress = nml;
     
    269271                                if(!mails.isEmpty())
    270272                                        result = true;
    271                                 Debug.debug(Debug.DEBUG, "Folder loaded: " + folderName);
     273                                if (_log.shouldDebug()) _log.debug("Folder loaded: " + folderName);
    272274                        } finally {
    273275                                synchronized(MailCache.this) {
     
    402404                        throw new IllegalArgumentException();
    403405                if (mailbox == null) {
    404                         Debug.debug(Debug.DEBUG, "getMail() mode " + mode + " called on wrong folder " + getFolderName(), new Exception());
     406                        if (_log.shouldDebug()) _log.debug("getMail() mode " + mode + " called on wrong folder " + getFolderName(), new Exception());
    405407                        return false;
    406408                }
     
    440442                                        if (disk != null) {
    441443                                                if (disk.getMail(mail, true)) {
    442                                                         Debug.debug(Debug.DEBUG, "Loaded header from disk cache: " + uidl);
     444                                                        if (_log.shouldDebug()) _log.debug("Loaded header from disk cache: " + uidl);
    443445                                                        // note that disk loaded the full body if it had it
    444446                                                        if (mail.hasBody() &&
     
    463465                                        if (disk != null) {
    464466                                                if (disk.getMail(mail, false)) {
    465                                                         Debug.debug(Debug.DEBUG, "Loaded body from disk cache: " + uidl);
     467                                                        if (_log.shouldDebug()) _log.debug("Loaded body from disk cache: " + uidl);
    466468                                                        // note that disk loaded the full body if it had it
    467469                                                        if (!Boolean.parseBoolean(Config.getProperty(WebMail.CONFIG_LEAVE_ON_SERVER))) {
  • apps/susimail/src/src/i2p/susi/webmail/MailPart.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.util.Buffer;
    2827import i2p.susi.util.CountingOutputStream;
     
    4746import java.util.concurrent.atomic.AtomicInteger;
    4847
     48import net.i2p.I2PAppContext;
    4949import net.i2p.data.DataHelper;
     50import net.i2p.util.Log;
    5051
    5152/**
     
    6970        public final boolean multipart, message;
    7071        public final Buffer buffer;
     72        private final Log _log;
    7173
    7274        /**
     
    9395        public MailPart(String uidl, AtomicInteger id, Buffer readBuffer, InputStream in, ReadCounter counter, String[] hdrlines) throws IOException
    9496        {
     97                _log = I2PAppContext.getGlobalContext().logManager().getLog(MailPart.class);
    9598                this.uidl = uidl;
    9699                intID = id.getAndIncrement();
     
    114117                        EncodingFactory.getEncoding("HEADERLINE").decode(eofin, decodedHeaders);
    115118                        if (!eofin.wasFound())
    116                                 Debug.debug(Debug.DEBUG, "EOF hit before \\r\\n\\r\\n in MailPart");
     119                                if (_log.shouldDebug()) _log.debug("EOF hit before \\r\\n\\r\\n in MailPart");
    117120                        // Fixme UTF-8 to bytes to UTF-8
    118121                        headerLines = DataHelper.split(new String(decodedHeaders.getContent(), decodedHeaders.getOffset(), decodedHeaders.getLength()), "\r\n");
     
    194197                        int c = in.read();
    195198                        if (c != '\n')
    196                                 Debug.debug(Debug.DEBUG, "wasn't a \\n, it was " + c);
     199                                if (_log.shouldDebug()) _log.debug("wasn't a \\n, it was " + c);
    197200                        beginBody = (int) counter.getRead();
    198201                }
     
    212215                                        DataHelper.copy(eofin, dummy); 
    213216                                        if (!eofin.wasFound())
    214                                                 Debug.debug(Debug.DEBUG, "EOF hit before first boundary " + boundary + " UIDL: " + uidl);
     217                                                if (_log.shouldDebug()) _log.debug("EOF hit before first boundary " + boundary + " UIDL: " + uidl);
    215218                                        if (readBoundaryTrailer(in)) {
    216219                                                if (!eofin.wasFound())
    217                                                         Debug.debug(Debug.DEBUG, "EOF hit before first part body " + boundary + " UIDL: " + uidl);
     220                                                        if (_log.shouldDebug()) _log.debug("EOF hit before first part body " + boundary + " UIDL: " + uidl);
    218221                                                tmpEnd = (int) eofin.getRead();
    219222                                                break;
     
    230233                                        DataHelper.copy(eofin, DUMMY_OUTPUT); 
    231234                                        if (!eofin.wasFound())
    232                                                 Debug.debug(Debug.DEBUG, "EOF hit before end of body " + i + " boundary: " + boundary + " UIDL: " + uidl);
     235                                                if (_log.shouldDebug()) _log.debug("EOF hit before end of body " + i + " boundary: " + boundary + " UIDL: " + uidl);
    233236                                }
    234237                                if (readBoundaryTrailer(in))
     
    252255                }
    253256                //if (Debug.getLevel() >= Debug.DEBUG)
    254                 //      Debug.debug(Debug.DEBUG, "New " + this);
     257                //      if (_log.shouldDebug()) _log.debug("New " + this);
    255258        }
    256259
     
    270273         *  @return true if end of input
    271274         */
    272         private static boolean readBoundaryTrailer(InputStream in) throws IOException {
     275        private boolean readBoundaryTrailer(InputStream in) throws IOException {
    273276                int c = in.read();
    274277                if (c == '-') {
     
    276279                        c = in.read();
    277280                        if (c != '-') {
    278                                 Debug.debug(Debug.DEBUG, "Unexpected char after boundary-: " + c);
     281                                if (_log.shouldDebug()) _log.debug("Unexpected char after boundary-: " + c);
    279282                                return true;
    280283                        }
     
    284287                        }
    285288                        if (c != '\r') {
    286                                 Debug.debug(Debug.DEBUG, "Unexpected char after boundary--: " + c);
     289                                if (_log.shouldDebug()) _log.debug("Unexpected char after boundary--: " + c);
    287290                                return true;
    288291                        }
    289292                        c = in.read();
    290293                        if (c != '\n')
    291                                 Debug.debug(Debug.DEBUG, "Unexpected char after boundary--\\r: " + c);
     294                                if (_log.shouldDebug()) _log.debug("Unexpected char after boundary--\\r: " + c);
    292295                        return true;
    293296                } else if (c == '\r') {
    294297                        c = in.read();
    295298                        if (c != '\n')
    296                                 Debug.debug(Debug.DEBUG, "Unexpected char after boundary\\r: " + c);
     299                                if (_log.shouldDebug()) _log.debug("Unexpected char after boundary\\r: " + c);
    297300                } else {
    298                         Debug.debug(Debug.DEBUG, "Unexpected char after boundary: " + c);
     301                        if (_log.shouldDebug()) _log.debug("Unexpected char after boundary: " + c);
    299302                }
    300303                return c == -1;
     
    311314                if (encg == null) {
    312315                        //throw new DecodingException("No encoding specified");
    313                         Debug.debug(Debug.DEBUG, "Warning: no transfer encoding found, fallback to 7bit.");
     316                        if (_log.shouldDebug()) _log.debug("Warning: no transfer encoding found, fallback to 7bit.");
    314317                        encg = "7bit";       
    315318                }
     
    333336                } catch (IOException ioe) {
    334337                        if (lin != null)
    335                                 Debug.debug(Debug.DEBUG, "Decode IOE at in position " + lin.getRead()
     338                                if (_log.shouldDebug()) _log.debug("Decode IOE at in position " + lin.getRead()
    336339                                            + " offset " + offset, ioe);
    337340                        else if (cos != null)
    338                                 Debug.debug(Debug.DEBUG, "Decode IOE at out position " + cos.getWritten()
     341                                if (_log.shouldDebug()) _log.debug("Decode IOE at out position " + cos.getWritten()
    339342                                            + " offset " + offset, ioe);
    340343                        else
    341                                 Debug.debug(Debug.DEBUG, "Decode IOE", ioe);
     344                                if (_log.shouldDebug()) _log.debug("Decode IOE", ioe);
    342345                        throw ioe;
    343346                } finally {
     
    366369                        DataHelper.copy(lin, out);
    367370                } catch (IOException ioe) {
    368                         Debug.debug(Debug.DEBUG, "Decode IOE", ioe);
     371                        if (_log.shouldDebug()) _log.debug("Decode IOE", ioe);
    369372                        throw ioe;
    370373                } finally {
  • apps/susimail/src/src/i2p/susi/webmail/PersistentMailCache.java

    r8c0e82d rb9bc254  
    11package i2p.susi.webmail;
    22
    3 import i2p.susi.debug.Debug;
    43import i2p.susi.webmail.Messages;
    54import i2p.susi.util.Buffer;
     
    3433import net.i2p.util.FileSuffixFilter;
    3534import net.i2p.util.I2PAppThread;
     35import net.i2p.util.Log;
    3636import net.i2p.util.PasswordManager;
    3737import net.i2p.util.SecureDirectory;
     
    7474        private final File _attachmentDir;
    7575        private final I2PAppContext _context;
     76        private final Log _log;
    7677        private final boolean _isDrafts;
    7778
     
    9798        public PersistentMailCache(I2PAppContext ctx, String host, int port, String user, String pass, String folder) throws IOException {
    9899                _context = ctx;
     100                _log = ctx.logManager().getLog(PersistentMailCache.class);
    99101                _isDrafts = folder.equals(WebMail.DIR_DRAFTS);
    100102                _lock = getLock(host, port, user, pass);
     
    164166                }
    165167                long end = _context.clock().now();
    166                 Debug.debug(Debug.DEBUG, "Loaded " + sz + " emails with " + tcnt + " threads in " + DataHelper.formatDuration(end - begin));
     168                if (_log.shouldDebug()) _log.debug("Loaded " + sz + " emails with " + tcnt + " threads in " + DataHelper.formatDuration(end - begin));
    167169                return rv;
    168170        }
     
    348350         * @return success
    349351         */
    350         private static boolean write(Buffer rb, File f) {
     352        private boolean write(Buffer rb, File f) {
    351353                InputStream in = null;
    352354                OutputStream out = null;
     
    358360                        return true;
    359361                } catch (IOException ioe) {
    360                         Debug.debug(Debug.ERROR, "Error writing: " + f + ": " + ioe);
     362                        _log.error("Error writing: " + f + ": " + ioe);
    361363                        return false;
    362364                } finally {
     
    438440                                        }
    439441                                } catch (IOException ioe) {
    440                                         Debug.debug(Debug.ERROR, "Import failed " + f, ioe);
     442                                        _log.error("Import failed " + f, ioe);
    441443                                        continue;
    442444                                } finally {
     
    448450                                File to = getFullFile(uidl);
    449451                                if (to.exists()) {
    450                                         Debug.debug(Debug.DEBUG, "Already have " + f + " as UIDL " + uidl);
     452                                        if (_log.shouldDebug()) _log.debug("Already have " + f + " as UIDL " + uidl);
    451453                                        f.delete();
    452454                                        continue;
     
    461463                                        DataHelper.copy(in, out);
    462464                                } catch (IOException ioe) {
    463                                         Debug.debug(Debug.ERROR, "Import failed " + f, ioe);
     465                                        _log.error("Import failed " + f, ioe);
    464466                                        continue;
    465467                                } finally {
     
    470472                                }
    471473                                f.delete();
    472                                 Debug.debug(Debug.DEBUG, "Imported " + f + " as UIDL " + uidl);
     474                                if (_log.shouldDebug()) _log.debug("Imported " + f + " as UIDL " + uidl);
    473475                        }
    474476                }
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.util.Buffer;
    2827import i2p.susi.util.Config;
     
    9089import net.i2p.servlet.util.WriterOutputStream;
    9190import net.i2p.util.I2PAppThread;
     91import net.i2p.util.Log;
    9292import net.i2p.util.RFC822Date;
    9393import net.i2p.util.SecureFileOutputStream;
     
    9999public class WebMail extends HttpServlet
    100100{
    101         /*
    102          * set to true, if its a release build
    103          */
    104         private static final boolean RELEASE;
     101        private final Log _log = I2PAppContext.getGlobalContext().logManager().getLog(WebMail.class);
     102
    105103        /*
    106104         * increase version number for every release
     
    269267        static {
    270268                Config.setPrefix( "susimail" );
    271                 RELEASE = !Boolean.parseBoolean(Config.getProperty(CONFIG_DEBUG));
    272                 Debug.setLevel( RELEASE ? Debug.ERROR : Debug.DEBUG );
    273269        }
    274270
     
    300296                private final List<String> nonces;
    301297                private static final int MAX_NONCES = 15;
     298                public final Log log;
    302299               
    303                 SessionObject()
     300                SessionObject(Log log)
    304301                {
    305302                        bccToSelf = Boolean.parseBoolean(Config.getProperty( CONFIG_BCC_TO_SELF, "true" ));
    306303                        nonces = new ArrayList<String>(MAX_NONCES + 1);
    307304                        caches = new HashMap<String, MailCache>(8);
     305                        this.log = log;
     306                        String dbg = Config.getProperty(CONFIG_DEBUG);
     307                        if (dbg != null) {
     308                                boolean release = !Boolean.parseBoolean(dbg);
     309                                log.setMinimumPriority(release ? Log.ERROR : Log.DEBUG);
     310                        }
    308311                }
    309312
     
    316319                 */
    317320                public void valueUnbound(HttpSessionBindingEvent event) {
    318                         Debug.debug(Debug.DEBUG, "Session unbound: " + event.getSession().getId());
     321                        if (log.shouldDebug()) log.debug("Session unbound: " + event.getSession().getId());
    319322                        POP3MailBox mbox = mailbox;
    320323                        if (mbox != null) {
     
    781784                POP3MailBox mailbox = new POP3MailBox(host, pop3PortNo, user, pass);
    782785                I2PAppContext ctx = I2PAppContext.getGlobalContext();
     786                Log log = sessionObject.log;
    783787                MailCache mc;
    784788                try {
     
    799803                        sessionObject.caches.put(DIR_SPAM, mc2);
    800804                } catch (IOException ioe) {
    801                         Debug.debug(Debug.ERROR, "Error creating disk cache", ioe);
     805                        log.error("Error creating disk cache", ioe);
    802806                        sessionObject.error += ioe.toString() + '\n';
    803807                        return State.AUTH;
     
    821825                // thread 2: mailbox.connectToServer()
    822826                if (offline) {
    823                         Debug.debug(Debug.DEBUG, "OFFLINE MODE");
     827                        if (log.shouldDebug()) log.debug("OFFLINE MODE");
    824828                } else {
    825829                        sessionObject.isFetching = true;
     
    835839                                sessionObject.wait(5000);
    836840                        } catch (InterruptedException ie) {
    837                                 Debug.debug(Debug.DEBUG, "Interrupted waiting for load", ie);
     841                                if (log.shouldDebug()) log.debug("Interrupted waiting for load", ie);
    838842                        }
    839843                }
     
    891895                        Folder<String> f = null;
    892896                        boolean found = false;
     897                        Log log = _so.log;
    893898                        if (connected) {
    894                                 Debug.debug(Debug.DEBUG, "CONNECTED, YAY");
     899                                if (log.shouldDebug()) log.debug("CONNECTED, YAY");
    895900                                // we do this whether new mail was found or not,
    896901                                // because we may already have UIDLs in the MailCache to fetch
     
    901906                                                        _so.wait(5000);
    902907                                                } catch (InterruptedException ie) {
    903                                                        Debug.debug(Debug.DEBUG, "Interrupted waiting for load", ie);
     908                                                       if (log.shouldDebug()) log.debug("Interrupted waiting for load", ie);
    904909                                                        return;
    905910                                                }
    906911                                        }
    907912                                }
    908                                 Debug.debug(Debug.DEBUG, "Done waiting for folder load");
     913                                if (log.shouldDebug()) log.debug("Done waiting for folder load");
    909914                                // fetch the mail outside the lock
    910915                                // TODO, would be better to add each email as we get it
     
    913918                                }
    914919                        } else {
    915                                 Debug.debug(Debug.DEBUG, "NOT CONNECTED, BOO");
     920                                if (log.shouldDebug()) log.debug("NOT CONNECTED, BOO");
    916921                        }
    917922                        synchronized(_so) {
     
    923928                                                _so.connectError = _t("Error connecting to server");
    924929                                } else if (!found) {
    925                                         Debug.debug(Debug.DEBUG, "No new emails");
     930                                        if (log.shouldDebug()) log.debug("No new emails");
    926931                                        _so.newMails = 0;
    927932                                        _so.connectError = null;
     
    933938                                        _so.newMails = added;
    934939                                        _so.connectError = null;
    935                                         Debug.debug(Debug.DEBUG, "Added " + added + " new emails");
     940                                        if (log.shouldDebug()) log.debug("Added " + added + " new emails");
    936941                                } else {
    937                                         Debug.debug(Debug.DEBUG, "MailCache/folder vanished?");
     942                                        if (log.shouldDebug()) log.debug("MailCache/folder vanished?");
    938943                                }
    939944                                _mb.setNewMailListener(_so);
     
    953958        private static State processLogout(SessionObject sessionObject, RequestWrapper request, boolean isPOST, State state)
    954959        {
     960                Log log = sessionObject.log;
    955961                if( buttonPressed( request, LOGOUT ) && isPOST) {
    956                         Debug.debug(Debug.DEBUG, "LOGOUT, REMOVING SESSION");
     962                        if (log.shouldDebug()) log.debug("LOGOUT, REMOVING SESSION");
    957963                        HttpSession session = request.getSession();
    958964                        session.removeAttribute( "sessionObject" );
     
    970976                        // AUTH will be passed in if mailbox is null
    971977                        // Check previous state
    972                         Debug.debug(Debug.DEBUG, "Lost conn, prev. state was " + request.getParameter(DEBUG_STATE));
     978                        if (log.shouldDebug()) log.debug("Lost conn, prev. state was " + request.getParameter(DEBUG_STATE));
    973979                        sessionObject.error += _t("Internal error, lost connection.") + '\n' +
    974980                                               _t("User logged out.") + '\n';
     
    10031009                               return State.LOADING;
    10041010                }
     1011                Log log = sessionObject.log;
    10051012
    10061013                /*
     
    10161023                                if (uidl == null)
    10171024                                        uidl = I2PAppContext.getGlobalContext().random().nextLong() + "drft";
    1018                                 Debug.debug(Debug.DEBUG, "Save as draft: " + uidl);
     1025                                if (log.shouldDebug()) log.debug("Save as draft: " + uidl);
    10191026                                MailCache toMC = sessionObject.caches.get(DIR_DRAFTS);
    10201027                                Writer wout = null;
     
    10311038                                        wout = new BufferedWriter(new OutputStreamWriter(buffer.getOutputStream(), "ISO-8859-1"));
    10321039                                        SMTPClient.writeMail(wout, draft, null, null);
    1033                                         Debug.debug(Debug.DEBUG, "Saved as draft: " + uidl);
     1040                                        if (log.shouldDebug()) log.debug("Saved as draft: " + uidl);
    10341041                                        ok = true;
    10351042                                } catch (IOException ioe) {
    10361043                                        sessionObject.error += _t("Unable to save mail.") + ' ' + ioe.getMessage() + '\n';
    1037                                         Debug.debug(Debug.DEBUG, "Unable to save as draft: " + uidl, ioe);
     1044                                        if (log.shouldDebug()) log.debug("Unable to save as draft: " + uidl, ioe);
    10381045                                } finally {
    10391046                                        if (wout != null) try { wout.close(); } catch (IOException ioe) {}
     
    10531060                                        Draft mail = (Draft) toMC.getMail(uidl, MailCache.FetchMode.CACHE_ONLY);
    10541061                                        if (mail != null) {
    1055                                                 Debug.debug(Debug.DEBUG, "Send mail: " + uidl);
     1062                                                if (log.shouldDebug()) log.debug("Send mail: " + uidl);
    10561063                                                ok = sendMail(sessionObject, mail);
    10571064                                        } else {
     
    10591066                                                ok = false;
    10601067                                                sessionObject.error += _t("Unable to save mail.") + '\n';
    1061                                                 Debug.debug(Debug.DEBUG, "Draft readback fail: " + uidl);
     1068                                                if (log.shouldDebug()) log.debug("Draft readback fail: " + uidl);
    10621069                                        }
    10631070                                }
     
    10711078                                        state = State.NEW;
    10721079                                }
    1073                                 Debug.debug(Debug.DEBUG, "State after save as draft: " + state);
     1080                                if (log.shouldDebug()) log.debug("State after save as draft: " + state);
    10741081                        } else if (buttonPressed(request, CANCEL)) {
    10751082                                // If we have a reference UIDL, go back to that
     
    13611368                                return state;
    13621369                        }
     1370                        Log log = sessionObject.log;
    13631371                        sessionObject.isFetching = true;
    13641372                        ConnectWaiter cw = new ConnectWaiter(sessionObject);
    13651373                        if (mailbox.connectToServer(cw)) {
    13661374                                // Start a thread to wait for results
    1367                                 Debug.debug(Debug.DEBUG, "Already connected, running CW");
     1375                                if (log.shouldDebug()) log.debug("Already connected, running CW");
    13681376                                Thread t = new I2PAppThread(cw, "Email fetcher");
    13691377                                t.start();
     
    13761384                                sessionObject.wait(3000);
    13771385                        } catch (InterruptedException ie) {
    1378                                 Debug.debug(Debug.DEBUG, "Interrupted waiting for connect", ie);
     1386                                if (log.shouldDebug()) log.debug("Interrupted waiting for connect", ie);
    13791387                        }
    13801388                }
     
    17721780                                }
    17731781                                Config.saveConfiguration(props);
    1774                                 boolean release = !Boolean.parseBoolean(props.getProperty(CONFIG_DEBUG));
    1775                                 Debug.setLevel( release ? Debug.ERROR : Debug.DEBUG );
     1782                                String dbg = props.getProperty(CONFIG_DEBUG);
     1783                                if (dbg != null) {
     1784                                        boolean release = !Boolean.parseBoolean(dbg);
     1785                                        Log log = sessionObject.log;
     1786                                        log.setMinimumPriority(release ? Log.ERROR : Log.DEBUG);
     1787                                }
    17761788                                state = folder != null ? State.LIST : State.AUTH;
    17771789                                sessionObject.info = _t("Configuration saved");
     
    18171829
    18181830                if( sessionObject == null ) {
    1819                         sessionObject = new SessionObject();
     1831                        sessionObject = new SessionObject(_log);
    18201832                        httpSession.setAttribute( "sessionObject", sessionObject );
    1821                         Debug.debug(Debug.DEBUG, "NEW session " + httpSession.getId());
     1833                        if (_log.shouldDebug()) _log.debug("NEW session " + httpSession.getId());
    18221834                } else {
    1823                         Debug.debug(Debug.DEBUG, "Existing session " + httpSession.getId() +
     1835                        if (_log.shouldDebug()) _log.debug("Existing session " + httpSession.getId() +
    18241836                                " created " + new Date(httpSession.getCreationTime()));
    18251837                }
     
    18961908                                                sessionObject.wait(5000);
    18971909                                        } catch (InterruptedException ie) {
    1898                                                 Debug.debug(Debug.DEBUG, "Interrupted waiting for load", ie);
     1910                                                Log log = sessionObject.log;
     1911                                                if (log.shouldDebug()) log.debug("Interrupted waiting for load", ie);
    18991912                                        }
    19001913                                }
     
    20022015                        state = processStateChangeButtons(sessionObject, request, isPOST, state);
    20032016                        state = processConfigButtons(sessionObject, request, isPOST, state);
    2004                         Debug.debug(Debug.DEBUG, "Prelim. state is " + state);
     2017                        if (_log.shouldDebug()) _log.debug("Prelim. state is " + state);
    20052018                        if (state == State.CONFIG) {
    20062019                                if (isPOST) {
     
    20352048                        //      httpSession.setMaxInactiveInterval(60*60*24);  // seconds
    20362049                        //      int newIdle = httpSession.getMaxInactiveInterval();
    2037                         //      Debug.debug(Debug.DEBUG, "Changed idle from " + oldIdle + " to " + newIdle);
     2050                        //      if (_log.shouldDebug()) _log.debug("Changed idle from " + oldIdle + " to " + newIdle);
    20382051                        //}
    20392052                       
     
    21612174                                                        sessionObject.wait(5000);
    21622175                                                } catch (InterruptedException ie) {
    2163                                                         Debug.debug(Debug.DEBUG, "Interrupted waiting for load", ie);
     2176                                                        if (_log.shouldDebug()) _log.debug("Interrupted waiting for load", ie);
    21642177                                                }
    21652178                                        }
     
    21712184
    21722185                        //// End state determination, state will not change after here
    2173                         Debug.debug(Debug.DEBUG, "Final state is " + state);
     2186                        if (_log.shouldDebug()) _log.debug("Final state is " + state);
    21742187
    21752188                        if (state == State.LIST || state == State.SHOW) {
     
    23942407                resp.setStatus(303);
    23952408                resp.getOutputStream().close();
    2396                 Debug.debug(Debug.DEBUG, "P-R-G to " + q);
     2409                //if (_log.shouldDebug()) _log.debug("P-R-G to " + q);
    23972410        }
    23982411
     
    24162429                boolean shown = false;
    24172430                if(part != null) {
     2431                        Log log = sessionObject.log;
    24182432                        String name = part.filename;
    24192433                        if (name == null) {
     
    24362450                                        if (part.decodedLength >= 0)
    24372451                                                response.setContentLength(part.decodedLength);
    2438                                         Debug.debug(Debug.DEBUG, "Sending raw attachment " + name + " length " + part.decodedLength);
     2452                                        if (log.shouldDebug()) log.debug("Sending raw attachment " + name + " length " + part.decodedLength);
    24392453                                        part.decode(0, new OutputStreamBuffer(response.getOutputStream()));
    24402454                                        shown = true;
    24412455                                } catch (IOException e) {
    2442                                         Debug.debug(Debug.ERROR, "Error sending raw attachment " + name + " length " + part.decodedLength, e);
     2456                                        log.error("Error sending raw attachment " + name + " length " + part.decodedLength, e);
    24432457                                }
    24442458                        } else {
     
    24572471                                        shown = true;
    24582472                                } catch (IOException e) {
    2459                                         Debug.debug(Debug.ERROR, "Error sending zip attachment " + name + " length " + part.decodedLength, e);
     2473                                        log.error("Error sending zip attachment " + name + " length " + part.decodedLength, e);
    24602474                                } finally {
    24612475                                        if ( zip != null)
     
    25012515                        return true;
    25022516                } catch (IOException e) {
    2503                         Debug.debug(Debug.DEBUG, "Save-As", e);
     2517                        Log log = sessionObject.log;
     2518                        if (log.shouldDebug()) log.debug("Save-As", e);
    25042519                        return false;
    25052520                } finally {
     
    25832598                        // only for draft
    25842599                        Mail.appendRecipients(body, bccList, Draft.HDR_BCC);
     2600                        Log log = sessionObject.log;
    25852601                        try {
    25862602                                body.append(hl.encode("Subject: " + subject));
     
    25882604                                ok = false;
    25892605                                sessionObject.error += e.getMessage() + '\n';
    2590                                 Debug.debug(Debug.DEBUG, "Draft subj", e);
     2606                                if (log.shouldDebug()) log.debug("Draft subj", e);
    25912607                        }
    25922608                        body.append("MIME-Version: 1.0\r\nContent-type: text/plain; charset=\"utf-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n");
     
    25992615                                ok = false;
    26002616                                sessionObject.error += e.getMessage() + '\n';
    2601                                 Debug.debug(Debug.DEBUG, "Draft body", e);
     2617                                if (log.shouldDebug()) log.debug("Draft body", e);
    26022618                        }
    26032619                }                       
     
    27402756
    27412757                public void run() {
    2742                         Debug.debug(Debug.DEBUG, "Email send start");
     2758                        Log log = sessionObject.log;
     2759                        if (log.shouldDebug()) log.debug("Email send start");
    27432760                        SMTPClient relay = new SMTPClient();
    27442761                        boolean ok = relay.sendMail(host, port, user, pass, sender, recipients, body,
    27452762                                                    attachments, boundary);
    2746                         Debug.debug(Debug.DEBUG, "Email send complete, success? " + ok);
     2763                        if (log.shouldDebug()) log.debug("Email send complete, success? " + ok);
    27472764                        synchronized(sessionObject) {
    27482765                                if (ok) {
     
    27552772                                                mc.delete(draft.uidl);
    27562773                                                mc.getFolder().removeElement(draft.uidl);
    2757                                                 Debug.debug(Debug.DEBUG, "Sent email deleted from drafts");
     2774                                                if (log.shouldDebug()) log.debug("Sent email deleted from drafts");
    27582775                                        }
    27592776                                        // now store to sent
     
    27712788                                                        SMTPClient.writeMail(wout, body,
    27722789                                                                             attachments, boundary);
    2773                                                         Debug.debug(Debug.DEBUG, "Sent email saved to Sent");
     2790                                                        if (log.shouldDebug()) log.debug("Sent email saved to Sent");
    27742791                                                        copyOK = true;
    27752792                                                } catch (IOException ioe) {
    27762793                                                        sessionObject.error += _t("Unable to save mail.") + ' ' + ioe.getMessage() + '\n';
    2777                                                         Debug.debug(Debug.DEBUG, "Sent email saved error", ioe);
     2794                                                        if (log.shouldDebug()) log.debug("Sent email saved error", ioe);
    27782795                                                } finally {
    27792796                                                        if (wout != null) try { wout.close(); } catch (IOException ioe) {}
     
    28642881                        }
    28652882                        String newUIDL = Base64.decodeToString(b64UIDL);
    2866                         Debug.debug(Debug.DEBUG, "Show draft: " + newUIDL);
     2883                        Log log = sessionObject.log;
     2884                        if (log.shouldDebug()) log.debug("Show draft: " + newUIDL);
    28672885                        if (newUIDL != null)
    28682886                                draft = (Draft) drafts.getMail(newUIDL, MailCache.FetchMode.CACHE_ONLY);
     
    31023120                                idChecked = false;
    31033121
    3104                         //Debug.debug( Debug.DEBUG, "check" + i + ": checkId=" + checkId + ", idChecked=" + idChecked + ", pageChanged=" + sessionObject.pageChanged +
     3122                        //if (_log.shouldDebug()) _log.debug("check" + i + ": checkId=" + checkId + ", idChecked=" + idChecked + ", pageChanged=" + sessionObject.pageChanged +
    31053123                        //              ", markAll=" + sessionObject.markAll +
    31063124                        //              ", invert=" + sessionObject.invert +
     
    32443262                }
    32453263                Mail mail = mc.getMail(showUIDL, MailCache.FetchMode.ALL);
    3246                 if(!RELEASE && mail != null && mail.hasBody() && mail.getSize() < 16384) {
     3264                boolean debug = Boolean.parseBoolean(Config.getProperty(CONFIG_DEBUG));
     3265                if(debug && mail != null && mail.hasBody() && mail.getSize() < 16384) {
    32473266                        out.println( "<!--" );
    32483267                        out.println( "Debug: Mail header and body follow");
  • apps/susimail/src/src/i2p/susi/webmail/encoding/Encoding.java

    r8c0e82d rb9bc254  
    3333import i2p.susi.util.MemoryBuffer;
    3434
     35import net.i2p.I2PAppContext;
    3536import net.i2p.data.DataHelper;
     37import net.i2p.util.Log;
    3638
    3739/**
     
    4244 */
    4345public abstract class Encoding {
     46        protected final Log _log;
     47
     48        protected Encoding() {
     49                _log = I2PAppContext.getGlobalContext().logManager().getLog(getClass());
     50        }
     51
    4452        public abstract String getName();
    4553
  • apps/susimail/src/src/i2p/susi/webmail/encoding/EncodingFactory.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail.encoding;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.util.Config;
    2827import i2p.susi.util.Buffer;
     
    3332import java.util.Set;
    3433
     34import net.i2p.I2PAppContext;
    3535import net.i2p.data.DataHelper;
    3636import net.i2p.util.HexDump;
     37import net.i2p.util.Log;
    3738
    3839/**
     
    5960                                        Encoding e = (Encoding) (c.getDeclaredConstructor().newInstance());
    6061                                        encodings.put( e.getName(), e );
    61                                         //Debug.debug( Debug.DEBUG, "Registered " + e.getClass().getName() );
     62                                        //if (_log.shouldDebug()) _log.debug("Registered " + e.getClass().getName() );
    6263                                }
    6364                                catch (Exception e) {
    64                                         Debug.debug( Debug.ERROR, "Error loading class '" + classNames[i] + "', reason: " + e.getClass().getName() );
     65                                        Log log = I2PAppContext.getGlobalContext().logManager().getLog(EncodingFactory.class);
     66                                        log.error("Error loading class '" + classNames[i] + "'", e);
    6567                                }
    6668                        }
  • apps/susimail/src/src/i2p/susi/webmail/encoding/HeaderLine.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail.encoding;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.util.HexTable;
    2827import i2p.susi.util.Buffer;
     
    3736
    3837import net.i2p.data.DataHelper;
     38import net.i2p.util.Log;
    3939
    4040/**
     
    233233                                c = pushbackChar;
    234234                                hasPushback = false;
    235                                 //Debug.debug(Debug.DEBUG, "Loop " + count + " Using pbchar(dec) " + c);
     235                                //if (_log.shouldDebug()) _log.debug("Loop " + count + " Using pbchar(dec) " + c);
    236236                        } else {
    237237                                c = in.read();
     
    289289                                }
    290290                                //if (f1 > 0)
    291                                 //      Debug.debug(Debug.DEBUG, "End of encoded word, f1 " + f1 + " f2 " + f2 + " f3 " + f3 + " f4 " + f4 +
     291                                //      if (_log.shouldDebug()) _log.debug("End of encoded word, f1 " + f1 + " f2 " + f2 + " f3 " + f3 + " f4 " + f4 +
    292292                                //      " offset " + offset + " pushback? " + hasPushback + " pbchar(dec) " + c + '\n' +
    293293                                //      net.i2p.util.HexDump.dump(encodedWord, 0, offset));
     
    300300                                                // =? but no more ?
    301301                                                // output what we buffered
    302                                                 Debug.debug(Debug.DEBUG, "2nd '?' not found");
     302                                                if (_log.shouldDebug()) _log.debug("2nd '?' not found");
    303303                                                for (int i = 0; i < offset; i++) {
    304304                                                        out.write(encodedWord[i] & 0xff);
     
    307307                                        } else if (f3 == 0) {
    308308                                                // discard what we buffered
    309                                                 Debug.debug(Debug.DEBUG, "3rd '?' not found");
     309                                                if (_log.shouldDebug()) _log.debug("3rd '?' not found");
    310310                                                continue;
    311311                                        } else {
     
    313313                                                // synthesize a 4th '?' in an attempt to output
    314314                                                // something, probably with some trailing garbage
    315                                                 Debug.debug(Debug.DEBUG, "4th '?' not found");
     315                                                if (_log.shouldDebug()) _log.debug("4th '?' not found");
    316316                                                f4 = offset + 1;
    317317                                                // keep going and output what we have
     
    340340                                                                // probably Base64 exceeded DECODE_MAX
    341341                                                                // Keep going and output what we got, if any
    342                                                                 if (Debug.getLevel() >= Debug.DEBUG) {
    343                                                                         Debug.debug(Debug.DEBUG, "q-w " + enc, eof);
    344                                                                         Debug.debug(Debug.DEBUG, net.i2p.util.HexDump.dump(encodedWord));
     342                                                                if (_log.shouldDebug()) {
     343                                                                        _log.debug("q-w " + enc, eof);
     344                                                                        _log.debug(net.i2p.util.HexDump.dump(encodedWord));
    345345                                                                }
    346346                                                        }
     
    378378                                                        continue;
    379379                                                } catch (IOException e1) {
    380                                                         Debug.debug(Debug.ERROR, "q-w " + enc, e1);
    381                                                         if (Debug.getLevel() >= Debug.DEBUG) {
    382                                                                 Debug.debug(Debug.DEBUG, net.i2p.util.HexDump.dump(encodedWord));
     380                                                        _log.error("q-w " + enc, e1);
     381                                                        if (_log.shouldDebug()) {
     382                                                                _log.debug(net.i2p.util.HexDump.dump(encodedWord));
    383383                                                        }
    384384                                                } catch (RuntimeException e1) {
    385                                                         Debug.debug(Debug.ERROR, "q-w " + enc, e1);
    386                                                         if (Debug.getLevel() >= Debug.DEBUG) {
    387                                                                 Debug.debug(Debug.DEBUG, net.i2p.util.HexDump.dump(encodedWord));
     385                                                        _log.error("q-w " + enc, e1);
     386                                                        if (_log.shouldDebug()) {
     387                                                                _log.debug(net.i2p.util.HexDump.dump(encodedWord));
    388388                                                        }
    389389                                                }
    390390                                        } else {
    391391                                                // can't happen
    392                                                 Debug.debug(Debug.DEBUG, "No decoder for " + enc);
     392                                                if (_log.shouldDebug()) _log.debug("No decoder for " + enc);
    393393                                        }  // e != null
    394394                                } else {
    395                                         Debug.debug(Debug.DEBUG, "Invalid encoding '" + (char) encodedWord[f2+1] + '\'');
     395                                        if (_log.shouldDebug()) _log.debug("Invalid encoding '" + (char) encodedWord[f2+1] + '\'');
    396396                                }  // enc != null
    397397                        }  // c == '='
     
    404404                                } else {
    405405                                        // pushback?
    406                                         Debug.debug(Debug.DEBUG, "No \\n after \\r");
     406                                        if (_log.shouldDebug()) _log.debug("No \\n after \\r");
    407407                                }
    408408                        }
  • apps/susimail/src/src/i2p/susi/webmail/pop3/BackgroundChecker.java

    r8c0e82d rb9bc254  
    11package i2p.susi.webmail.pop3;
    22
    3 import i2p.susi.debug.Debug;
    43import i2p.susi.webmail.WebMail;
    54import i2p.susi.util.Config;
     
    1312import net.i2p.util.I2PAppThread;
    1413import net.i2p.util.ConcurrentHashSet;
     14import net.i2p.util.Log;
    1515import net.i2p.util.SimpleTimer2;
    1616
     
    2828        private volatile boolean isChecking;
    2929        private volatile boolean isDead;
     30        private final Log _log;
    3031
    3132        private static final int DEFAULT_CHECK_MINUTES = 3*60;
     
    4243                toDelete = new ConcurrentHashSet<String>();
    4344                timer = new Checker();
     45                _log = I2PAppContext.getGlobalContext().logManager().getLog(BackgroundChecker.class);
    4446        }
    4547
     
    5456        }
    5557
    56         private static long getCheckTime() {
     58        private long getCheckTime() {
    5759                int minutes = DEFAULT_CHECK_MINUTES;
    5860                String con = Config.getProperty(WebMail.CONFIG_CHECK_MINUTES);
     
    6163                                int mins = Integer.parseInt(con);
    6264                                // allow shorter for testing
    63                                 if (mins < MIN_CHECK_MINUTES && Debug.getLevel() != Debug.DEBUG)
     65                                if (mins < MIN_CHECK_MINUTES && !_log.shouldDebug())
    6466                                        mins = MIN_CHECK_MINUTES;
    6567                                minutes = mins;
     
    8284                                long last = System.currentTimeMillis() - mailbox.getLastChecked();
    8385                                if (idle >= MIN_IDLE && last >= MIN_SINCE) {
    84                                         Debug.debug(Debug.DEBUG, "Threading check for mail after " +
     86                                        if (_log.shouldDebug()) _log.debug("Threading check for mail after " +
    8587                                                        idle + " ms idle and " + last + " since last check");
    8688                                        Thread t = new Getter();
     
    8890                                        t.start();
    8991                                } else {
    90                                         Debug.debug(Debug.DEBUG, "Not checking after " +
     92                                        if (_log.shouldDebug()) _log.debug("Not checking after " +
    9193                                                        idle + " ms idle and " + last + " since last check");
    9294                                }
    9395                        } else {
    94                                 Debug.debug(Debug.DEBUG, "Not checking, still connected");
     96                                if (_log.shouldDebug()) _log.debug("Not checking, still connected");
    9597                        }
    9698                        schedule(getCheckTime());
     
    109111                                        int found = mailbox.getNumMails();
    110112                                        if (found > 0) {
    111                                                 Debug.debug(Debug.DEBUG, "Found " + found + " mails, calling listener");
     113                                                if (_log.shouldDebug()) _log.debug("Found " + found + " mails, calling listener");
    112114                                                // may not really be new
    113115                                                mailbox.foundNewMail(true);
  • apps/susimail/src/src/i2p/susi/webmail/pop3/DelayedDeleter.java

    r8c0e82d rb9bc254  
    11package i2p.susi.webmail.pop3;
    2 
    3 import i2p.susi.debug.Debug;
    42
    53import java.util.ArrayList;
     
    119import net.i2p.util.I2PAppThread;
    1210import net.i2p.util.ConcurrentHashSet;
     11import net.i2p.util.Log;
    1312import net.i2p.util.SimpleTimer2;
    1413
     
    2726        private final Set<String> toDelete;
    2827        private final SimpleTimer2.TimedEvent timer;
     28        private final Log _log;
    2929        private volatile boolean isDeleting;
    3030        private volatile boolean isDead;
     
    3737                toDelete = new ConcurrentHashSet<String>();
    3838                timer = new Checker();
     39                _log = I2PAppContext.getGlobalContext().logManager().getLog(DelayedDeleter.class);
    3940        }
    4041
     
    6970                                long idle = System.currentTimeMillis() - mailbox.getLastActivity();
    7071                                if (idle >= MIN_IDLE) {
    71                                         Debug.debug(Debug.DEBUG, "Threading delayed delete for " + toDelete.size() +
     72                                        if (_log.shouldDebug()) _log.debug("Threading delayed delete for " + toDelete.size() +
    7273                                                        " mails after " + idle + " ms idle");
    7374                                        Thread t = new Deleter();
     
    7576                                        t.start();
    7677                                } else {
    77                                         Debug.debug(Debug.DEBUG, "Not deleting " + toDelete.size() + ", only idle " + idle);
     78                                        if (_log.shouldDebug()) _log.debug("Not deleting " + toDelete.size() + ", only idle " + idle);
    7879                                }
    7980                        } else {
    80                                 Debug.debug(Debug.DEBUG, "Nothing to delete");
     81                                if (_log.shouldDebug()) _log.debug("Nothing to delete");
    8182                        }
    8283                        schedule(CHECK_TIME);
     
    9495                                List<String> uidls = new ArrayList<String>(toDelete);
    9596                                Collection<String> deleted = mailbox.delete(uidls);
    96                                 Debug.debug(Debug.DEBUG, "Deleted " + deleted.size() + " of " + toDelete.size() + " mails");
     97                                if (_log.shouldDebug()) _log.debug("Deleted " + deleted.size() + " of " + toDelete.size() + " mails");
    9798                                toDelete.removeAll(deleted);
    9899                        } finally {             
  • apps/susimail/src/src/i2p/susi/webmail/pop3/IdleCloser.java

    r8c0e82d rb9bc254  
    11package i2p.susi.webmail.pop3;
    22
    3 import i2p.susi.debug.Debug;
    43import i2p.susi.webmail.WebMail;
    54import i2p.susi.util.Config;
     
    76import net.i2p.I2PAppContext;
    87import net.i2p.util.I2PAppThread;
     8import net.i2p.util.Log;
    99import net.i2p.util.SimpleTimer2;
    1010
     
    1919        private final POP3MailBox mailbox;
    2020        private final SimpleTimer2.TimedEvent timer;
     21        private final Log _log;
    2122        private volatile boolean isClosing;
    2223        private volatile boolean isDead;
     
    3233                this.mailbox = mailbox;
    3334                timer = new Checker();
     35                _log = I2PAppContext.getGlobalContext().logManager().getLog(IdleCloser.class);
    3436        }
    3537
     
    6971                                long idle = System.currentTimeMillis() - mailbox.getLastActivity();
    7072                                long remaining = config - idle;
     73                                Log log = IdleCloser.this._log;
    7174                                if (remaining <= 0) {
    72                                         Debug.debug(Debug.DEBUG, "Threading close after " +
     75                                        if (log.shouldDebug()) log.debug("Threading close after " +
    7376                                                        idle + " ms idle");
    7477                                        Thread t = new Closer();
     
    7679                                        t.start();
    7780                                } else {
    78                                         Debug.debug(Debug.DEBUG, "Not closing after " +
     81                                        if (log.shouldDebug()) log.debug("Not closing after " +
    7982                                                        idle + " ms idle");
    8083                                        schedule(remaining + 5000);
  • apps/susimail/src/src/i2p/susi/webmail/pop3/POP3MailBox.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail.pop3;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.webmail.Messages;
    2827import i2p.susi.webmail.NewMailListener;
     
    4544import java.util.concurrent.atomic.AtomicLong;
    4645
     46import net.i2p.I2PAppContext;
    4747import net.i2p.data.DataHelper;
    4848import net.i2p.util.I2PAppThread;
    4949import net.i2p.util.InternalSocket;
     50import net.i2p.util.Log;
    5051
    5152/**
     
    5556
    5657        private final String host, user, pass;
     58        private final Log _log;
    5759
    5860        private String lastLine, lastError;
     
    9395         */
    9496        public POP3MailBox(String host, int port, String user, String pass) {
    95                 Debug.debug(
    96                         Debug.DEBUG,
    97                         "Mailbox(" + host + "," + port + "," + user + ",password)");
     97                _log = I2PAppContext.getGlobalContext().logManager().getLog(POP3MailBox.class);
     98                if (_log.shouldDebug())
     99                        _log.debug("Mailbox(" + host + "," + port + "," + user + ",password)");
    98100                this.host = host;
    99101                this.port = port;
     
    122124                                checkConnection();
    123125                        } catch (IOException ioe) {
    124                                 Debug.debug(Debug.DEBUG, "Error fetching header", ioe);
     126                                if (_log.shouldDebug()) _log.debug("Error fetching header", ioe);
    125127                                return null;
    126128                        }
     
    140142         */
    141143        private Buffer getHeader( int id ) {
    142                         Debug.debug(Debug.DEBUG, "getHeader(" + id + ")");
     144                        if (_log.shouldDebug()) _log.debug("getHeader(" + id + ")");
    143145                        Buffer header = null;
    144146                        if (id >= 1 && id <= mails) {
     
    154156                                        header = sendCmdN("RETR " + id, new MemoryBuffer(2048));
    155157                                        if (header == null)
    156                                                 Debug.debug( Debug.DEBUG, "RETR returned null" );
     158                                                if (_log.shouldDebug()) _log.debug("RETR returned null" );
    157159                                }
    158160                                if (socket != null) try { socket.setSoTimeout(300*1000); } catch (IOException ioe) {}
     
    175177                                checkConnection();
    176178                        } catch (IOException ioe) {
    177                                 Debug.debug(Debug.DEBUG, "Error fetching body", ioe);
     179                                if (_log.shouldDebug()) _log.debug("Error fetching body", ioe);
    178180                                return null;
    179181                        }
     
    199201                                checkConnection();
    200202                        } catch (IOException ioe) {
    201                                 Debug.debug(Debug.DEBUG, "Error fetching", ioe);
     203                                if (_log.shouldDebug()) _log.debug("Error fetching", ioe);
    202204                                return;
    203205                        }
     
    221223                                sendCmds(srs);
    222224                        } catch (IOException ioe) {
    223                                 Debug.debug(Debug.DEBUG, "Error fetching bodies", ioe);
     225                                if (_log.shouldDebug()) _log.debug("Error fetching bodies", ioe);
    224226                                if (socket != null) {
    225227                                        try { socket.close(); } catch (IOException e) {}
     
    244246         */
    245247        private Buffer getBody(int id, Buffer buffer) {
    246                         Debug.debug(Debug.DEBUG, "getBody(" + id + ")");
     248                        if (_log.shouldDebug()) _log.debug("getBody(" + id + ")");
    247249                        Buffer body = null;
    248250                        if (id >= 1 && id <= mails) {
     
    252254                                        if (socket != null) try { socket.setSoTimeout(300*1000); } catch (IOException ioe) {}
    253255                                        if (body == null)
    254                                                 Debug.debug( Debug.DEBUG, "RETR returned null" );
     256                                                if (_log.shouldDebug()) _log.debug("RETR returned null" );
    255257                                } catch (OutOfMemoryError oom) {
    256                                         Debug.debug( Debug.ERROR, "OOM fetching mail" );
     258                                        _log.error("OOM fetching mail", oom);
    257259                                        lastError = oom.toString();
    258260                                        close();
     
    275277        public boolean delete( String uidl )
    276278        {
    277                 Debug.debug(Debug.DEBUG, "delete(" + uidl + ")");
     279                if (_log.shouldDebug()) _log.debug("delete(" + uidl + ")");
    278280                synchronized( synchronizer ) {
    279281                        try {
     
    281283                                checkConnection();
    282284                        } catch (IOException ioe) {
    283                                 Debug.debug( Debug.DEBUG, "Error deleting: " + ioe);
     285                                if (_log.shouldDebug()) _log.debug("Error deleting: " + ioe);
    284286                                return false;
    285287                        }
     
    309311         */
    310312        public void queueForDeletion(String uidl) {
    311                 Debug.debug(Debug.DEBUG, "Queueing for deletion: " + uidl);
     313                if (_log.shouldDebug()) _log.debug("Queueing for deletion: " + uidl);
    312314                delayedDeleter.queueDelete(uidl);
    313315        }
     
    328330                                checkConnection();
    329331                        } catch (IOException ioe) {
    330                                 Debug.debug(Debug.DEBUG, "Error deleting", ioe);
     332                                if (_log.shouldDebug()) _log.debug("Error deleting", ioe);
    331333                                return rv;
    332334                        }
     
    369371                                //connect();
    370372                        } catch (IOException ioe) {
    371                                 Debug.debug(Debug.DEBUG, "Error deleting", ioe);
     373                                if (_log.shouldDebug()) _log.debug("Error deleting", ioe);
    372374                                if (socket != null) {
    373375                                        try { socket.close(); } catch (IOException e) {}
     
    391393        private boolean delete(int id)
    392394        {
    393                 Debug.debug(Debug.DEBUG, "delete(" + id + ")");
     395                if (_log.shouldDebug()) _log.debug("delete(" + id + ")");
    394396               
    395397                boolean result = false;
     
    437439                        if (resultObj != null)
    438440                                result = resultObj.intValue();
    439                         Debug.debug(Debug.DEBUG, "getSize(" + id + ") = " + result);
     441                        if (_log.shouldDebug()) _log.debug("getSize(" + id + ") = " + result);
    440442                        return result;
    441443        }
     
    469471         */
    470472        private void checkConnection() throws IOException {
    471                 Debug.debug(Debug.DEBUG, "checkConnection()");
     473                if (_log.shouldDebug()) _log.debug("checkConnection()");
    472474                if (!isConnected()) {
    473475                        connect();
     
    542544                                                        uidlToID.put( uidl, Integer.valueOf( n ) );
    543545                                                } catch (NumberFormatException nfe) {
    544                                                         Debug.debug(Debug.DEBUG, "UIDL error", nfe);
     546                                                        if (_log.shouldDebug()) _log.debug("UIDL error", nfe);
    545547                                                } catch (IndexOutOfBoundsException ioobe) {
    546                                                         Debug.debug(Debug.DEBUG, "UIDL error", ioobe);
     548                                                        if (_log.shouldDebug()) _log.debug("UIDL error", ioobe);
    547549                                                }
    548550                                        }
     
    550552                                lastChecked.set(System.currentTimeMillis());
    551553                        } else {
    552                                 Debug.debug(Debug.DEBUG, "Error getting UIDL list from server.");
     554                                if (_log.shouldDebug()) _log.debug("Error getting UIDL list from server.");
    553555                        }
    554556        }
     
    573575                                                sizes.put(Integer.valueOf(key), Integer.valueOf(value));
    574576                                        } catch (NumberFormatException nfe) {
    575                                                 Debug.debug(Debug.DEBUG, "LIST error", nfe);
     577                                                if (_log.shouldDebug()) _log.debug("LIST error", nfe);
    576578                                        }
    577579                                }
    578580                        }
    579581                } else {
    580                         Debug.debug(Debug.DEBUG, "Error getting LIST from server.");
     582                        if (_log.shouldDebug()) _log.debug("Error getting LIST from server.");
    581583                }
    582584        }
     
    677679                                        connected = false;
    678680                                }
    679                                 Debug.debug(Debug.DEBUG, "Error rechecking", e1);
     681                                if (_log.shouldDebug()) _log.debug("Error rechecking", e1);
    680682                        } catch (IOException e1) {
    681683                                if (socket != null) {
     
    685687                                }
    686688                                lastError = _t("Cannot connect") + ": " + e1.getLocalizedMessage();
    687                                 Debug.debug(Debug.DEBUG, "Error rechecking", e1);
     689                                if (_log.shouldDebug()) _log.debug("Error rechecking", e1);
    688690                                // we probably weren't really connected.
    689691                                // Let's try again from the top.
     
    732734         */
    733735        private void connect() {
    734                 Debug.debug(Debug.DEBUG, "connect()");
    735                 if (Debug.getLevel() == Debug.DEBUG)
    736                         (new Exception("I did it")).printStackTrace();
     736                if (_log.shouldDebug()) _log.debug("connect()", new Exception("I did it"));
    737737
    738738                clear();
     
    744744                        socket = InternalSocket.getSocket(host, port);
    745745                } catch (IOException e) {
    746                         Debug.debug(Debug.DEBUG, "Error connecting", e);
     746                        if (_log.shouldDebug()) _log.debug("Error connecting", e);
    747747                        lastError = _t("Cannot connect") + " (" + host + ':' + port + ") - " + e.getLocalizedMessage();
    748748                        return;
     
    789789                                        connected = false;
    790790                                }
    791                                 Debug.debug(Debug.DEBUG, "Error connecting", e1);
     791                                if (_log.shouldDebug()) _log.debug("Error connecting", e1);
    792792                        } catch (IOException e1) {
    793793                                lastError = _t("Cannot connect") + ": " + e1.getLocalizedMessage();
     
    797797                                        connected = false;
    798798                                }
    799                                 Debug.debug(Debug.DEBUG, "Error connecting", e1);
     799                                if (_log.shouldDebug()) _log.debug("Error connecting", e1);
    800800                        }
    801801                }
     
    815815                SendRecv capa = null;
    816816                if (gotCAPA) {
    817                         Debug.debug(Debug.DEBUG, "Skipping CAPA");
     817                        if (_log.shouldDebug()) _log.debug("Skipping CAPA");
    818818                } else {
    819819                        capa = new SendRecv("CAPA", Mode.LS);
     
    834834                        }
    835835                        gotCAPA = true;
    836                         Debug.debug(Debug.DEBUG, "POP3 server caps: pipelining? " + supportsPipelining +
     836                        if (_log.shouldDebug()) _log.debug("POP3 server caps: pipelining? " + supportsPipelining +
    837837                                                           " UIDL? " + supportsUIDL +
    838838                                                           " TOP? " + supportsTOP);
     
    866866                        updateMailCount(stat.response);
    867867                else
    868                         Debug.debug(Debug.DEBUG, "STAT failed");
     868                        if (_log.shouldDebug()) _log.debug("STAT failed");
    869869                if (uidl.result)
    870870                        updateUIDLs(uidl.ls);
    871871                else
    872                         Debug.debug(Debug.DEBUG, "UIDL failed");
     872                        if (_log.shouldDebug()) _log.debug("UIDL failed");
    873873                if (list.result)
    874874                        updateSizes(list.ls);
    875875                else
    876                         Debug.debug(Debug.DEBUG, "LIST failed");
     876                        if (_log.shouldDebug()) _log.debug("LIST failed");
    877877                if (socket != null) try { socket.setSoTimeout(300*1000); } catch (IOException ioe) {}
    878878                return ok;
     
    894894                String foo = DataHelper.readLine(socket.getInputStream());
    895895                updateActivity();
    896                 // Debug.debug(Debug.DEBUG, "sendCmd1a: read " + read + " bytes");
     896                // if (_log.shouldDebug()) _log.debug("sendCmd1a: read " + read + " bytes");
    897897                if (foo != null) {
    898898                        lastLine = foo;
     
    900900                                if (cmd.startsWith("PASS"))
    901901                                        cmd = "PASS provided";
    902                                 Debug.debug(Debug.DEBUG, "sendCmd1a: (" + cmd + ") success: \"" + lastLine.trim() + '"');
     902                                if (_log.shouldDebug()) _log.debug("sendCmd1a: (" + cmd + ") success: \"" + lastLine.trim() + '"');
    903903                                result = true;
    904904                        } else {
    905905                                if (cmd.startsWith("PASS"))
    906906                                        cmd = "PASS provided";
    907                                 Debug.debug(Debug.DEBUG, "sendCmd1a: (" + cmd + ") FAIL: \"" + lastLine.trim() + '"');
     907                                if (_log.shouldDebug()) _log.debug("sendCmd1a: (" + cmd + ") FAIL: \"" + lastLine.trim() + '"');
    908908                                lastError = lastLine;
    909909                        }
    910910                } else {
    911                         Debug.debug(Debug.DEBUG, "sendCmd1a: (" + cmd + ") NO RESPONSE");
     911                        if (_log.shouldDebug()) _log.debug("sendCmd1a: (" + cmd + ") NO RESPONSE");
    912912                        lastError = _t("No response from server");
    913913                        throw new IOException(lastError);
     
    931931                boolean pipe = supportsPipelining;
    932932                if (pipe) {
    933                         Debug.debug(Debug.DEBUG, "POP3 pipelining " + cmds.size() + " commands");
     933                        if (_log.shouldDebug()) _log.debug("POP3 pipelining " + cmds.size() + " commands");
    934934                        for (SendRecv sr : cmds) {
    935935                                String cmd = sr.send;
     
    958958                        i++;
    959959                        if (!foo.startsWith("+OK")) {
    960                                 Debug.debug(Debug.DEBUG, "Fail after " + i + " of " + cmds.size() + " responses: \"" + foo.trim() + '"');
     960                                if (_log.shouldDebug()) _log.debug("Fail after " + i + " of " + cmds.size() + " responses: \"" + foo.trim() + '"');
    961961                                if (result)
    962962                                    lastError = foo;   // actually the first error, for better info to the user
     
    964964                                sr.result = false;
    965965                        } else {
    966                                 Debug.debug(Debug.DEBUG, "OK after " + i + " of " + cmds.size() + " responses: \"" + foo.trim() + '"');
     966                                if (_log.shouldDebug()) _log.debug("OK after " + i + " of " + cmds.size() + " responses: \"" + foo.trim() + '"');
    967967                                switch (sr.mode) {
    968968                                    case A1:
     
    975975                                                sr.result = true;
    976976                                        } catch (IOException ioe) {
    977                                                 Debug.debug(Debug.DEBUG, "Error getting RB", ioe);
     977                                                if (_log.shouldDebug()) _log.debug("Error getting RB", ioe);
    978978                                                result = false;
    979979                                                sr.result = false;
     
    991991                                                sr.result = true;
    992992                                        } catch (IOException ioe) {
    993                                                 Debug.debug(Debug.DEBUG, "Error getting LS", ioe);
     993                                                if (_log.shouldDebug()) _log.debug("Error getting LS", ioe);
    994994                                                result = false;
    995995                                                sr.result = false;
     
    10231023                if (msg.startsWith("PASS"))
    10241024                        msg = "PASS provided";
    1025                 Debug.debug(Debug.DEBUG, "sendCmd1a(" + msg + ")");
     1025                if (_log.shouldDebug()) _log.debug("sendCmd1a(" + msg + ")");
    10261026                cmd += "\r\n";
    10271027                socket.getOutputStream().write(DataHelper.getASCII(cmd));
     
    10421042                        } catch (IOException e) {
    10431043                                lastError = e.toString();
    1044                                 Debug.debug(Debug.DEBUG, "sendCmdNa throws", e);
     1044                                if (_log.shouldDebug()) _log.debug("sendCmdNa throws", e);
    10451045                                if (socket != null) {
    10461046                                        try { socket.close(); } catch (IOException ioe) {}
     
    10551055                                } catch (IOException e2) {
    10561056                                        lastError = e2.toString();
    1057                                         Debug.debug(Debug.DEBUG, "2nd sendCmdNa throws", e2);
     1057                                        if (_log.shouldDebug()) _log.debug("2nd sendCmdNa throws", e2);
    10581058                                        if (socket != null) {
    10591059                                                try { socket.close(); } catch (IOException e) {}
     
    10631063                                }
    10641064                        } else {
    1065                                 Debug.debug( Debug.DEBUG, "not connected after reconnect" );                                   
     1065                                if (_log.shouldDebug()) _log.debug("not connected after reconnect" );                                   
    10661066                        }
    10671067                }
     
    10821082                        return buffer;
    10831083                } else {
    1084                         Debug.debug( Debug.DEBUG, "sendCmd1a returned false" );
     1084                        if (_log.shouldDebug()) _log.debug("sendCmd1a returned false" );
    10851085                        return null;
    10861086                }
     
    11021102                        return getResultNl();
    11031103                } else {
    1104                         Debug.debug( Debug.DEBUG, "sendCmd1a returned false" );
     1104                        if (_log.shouldDebug()) _log.debug("sendCmd1a returned false" );
    11051105                        return null;
    11061106                }
     
    11931193        public int getNumMails() {
    11941194                synchronized( synchronizer ) {
    1195                         Debug.debug(Debug.DEBUG, "getNumMails()");
     1195                        if (_log.shouldDebug()) _log.debug("getNumMails()");
    11961196                        try {
    11971197                                checkConnection();
     
    12051205         */
    12061206        public String lastError() {
    1207                 //Debug.debug(Debug.DEBUG, "lastError()");
     1207                //if (_log.shouldDebug()) _log.debug("lastError()");
    12081208                // Hide the "-ERR" from the user
    12091209                String e = lastError;
     
    12871287        void close(boolean shouldWait) {
    12881288                synchronized( synchronizer ) {
    1289                         Debug.debug(Debug.DEBUG, "close()");
     1289                        if (_log.shouldDebug()) _log.debug("close()");
    12901290                        if (idleCloser != null)
    12911291                                idleCloser.cancel();
     
    13111311                                                        sendCmd1a("QUIT");
    13121312                                                }
    1313                                                 Debug.debug( Debug.DEBUG, "close() with wait complete");
     1313                                                if (_log.shouldDebug()) _log.debug("close() with wait complete");
    13141314                                        } else {
    13151315                                                if (!sendDelete.isEmpty()) {
     
    13221322                                        }
    13231323                                } catch (IOException e) {
    1324                                         //Debug.debug( Debug.DEBUG, "error closing: " + e);
     1324                                        //if (_log.shouldDebug()) _log.debug("error closing: " + e);
    13251325                                } finally {
    13261326                                        if (socket != null) {
     
    13921392        public static void main( String[] args )
    13931393        {
    1394                 Debug.setLevel( Debug.DEBUG );
    13951394                POP3MailBox mailbox = new POP3MailBox( "localhost", 7660 , "test", "test");
    13961395                ReadBuffer readBuffer = mailbox.sendCmdN( "LIST" );
  • apps/susimail/src/src/i2p/susi/webmail/smtp/SMTPClient.java

    r8c0e82d rb9bc254  
    2424package i2p.susi.webmail.smtp;
    2525
    26 import i2p.susi.debug.Debug;
    2726import i2p.susi.webmail.Attachment;
    2827import i2p.susi.webmail.Messages;
     
    4241import java.util.List;
    4342
     43import net.i2p.I2PAppContext;
    4444import net.i2p.data.DataHelper;
    4545import net.i2p.util.InternalSocket;
     46import net.i2p.util.Log;
    4647
    4748/**
     
    6465        public static final long BINARY_MAX_SIZE = (long) ((DEFAULT_MAX_SIZE * 57.0d / 78) - 32*1024);
    6566
     67        private final Log _log;
    6668        private Socket socket;
    6769        public String error;
     
    8082                error = "";
    8183                lastResponse = "";
     84                _log = I2PAppContext.getGlobalContext().logManager().getLog(SMTPClient.class);
    8285        }
    8386       
     
    122125        private void sendCmdNoWait(String cmd) throws IOException
    123126        {
    124                 Debug.debug( Debug.DEBUG, "SMTP sendCmd(" + cmd +")" );
     127                if (_log.shouldDebug()) _log.debug("SMTP sendCmd(" + cmd +")" );
    125128               
    126129                if( socket == null )
     
    142145                int rv = 0;
    143146                if (supportsPipelining) {
    144                         Debug.debug(Debug.DEBUG, "SMTP pipelining " + cmds.size() + " commands");
     147                        if (_log.shouldDebug()) _log.debug("SMTP pipelining " + cmds.size() + " commands");
    145148                        try {
    146149                                for (SendExpect cmd : cmds) {
     
    169172                        }
    170173                }
    171                 Debug.debug(Debug.DEBUG, "SMTP success in " + rv + " of " + cmds.size() + " commands");
     174                if (_log.shouldDebug()) _log.debug("SMTP success in " + rv + " of " + cmds.size() + " commands");
    172175                return rv;
    173176        }
     
    194197                        StringBuilder buf = new StringBuilder(128);
    195198                        while (DataHelper.readLine(in, buf)) {
    196                                 Debug.debug(Debug.DEBUG, "SMTP rcv \"" + buf.toString().trim() + '"');
     199                                if (_log.shouldDebug()) _log.debug("SMTP rcv \"" + buf.toString().trim() + '"');
    197200                                int len = buf.length();
    198201                                if (len < 4) {
     
    267270                                                if (c.equals("PIPELINING")) {
    268271                                                        supportsPipelining = true;
    269                                                         Debug.debug(Debug.DEBUG, "Server supports pipelining");
     272                                                        if (_log.shouldDebug()) _log.debug("Server supports pipelining");
    270273                                                } else if (c.startsWith("SIZE ")) {
    271274                                                        try {
    272275                                                                maxSize = Long.parseLong(c.substring(5));
    273                                                                 Debug.debug(Debug.DEBUG, "Server max size: " + maxSize);
     276                                                                if (_log.shouldDebug()) _log.debug("Server max size: " + maxSize);
    274277                                                        } catch (NumberFormatException nfe) {}
    275278                                                } else if (c.equals("8BITMIME")) {
    276279                                                        // unused, see encoding/EightBit.java
    277280                                                        eightBitMime = true;
    278                                                         Debug.debug(Debug.DEBUG, "Server supports 8bitmime");
     281                                                        if (_log.shouldDebug()) _log.debug("Server supports 8bitmime");
    279282                                                }
    280283                                        }
     
    285288                        }
    286289                        if (ok && maxSize < DEFAULT_MAX_SIZE) {
    287                                 Debug.debug(Debug.DEBUG, "Rechecking with new max size");
     290                                if (_log.shouldDebug()) _log.debug("Rechecking with new max size");
    288291                                // recalculate whether we'll fit
    289292                                // copied from WebMail
Note: See TracChangeset for help on using the changeset viewer.