logger.java

来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 148 行

JAVA
148
字号
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   Logger.java

package com.sonyericsson.fb.utils;

import java.io.*;
import javax.microedition.io.Connection;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;

public class Logger
{

    private Logger()
    {
        fileName = "file:///c:/other/facebook_homescreen.log";
        _logToFile = true;
        _ignoreWarnings = false;
        _ignoreErrors = false;
        _ignoreOutput = false;
        _fileLogConnection = null;
        _fileLog = null;
    }

    private static Logger getInstance()
    {
        if(_instance == null)
            _instance = new Logger();
        return _instance;
    }

    public static void println(String message)
    {
        getInstance().log("[Facebook] " + message);
    }

    public static void printErrorln(String message)
    {
        if(getInstance()._ignoreErrors)
        {
            return;
        } else
        {
            getInstance().log("[Facebook - ERROR] " + message);
            return;
        }
    }

    public static void printWarningln(String message)
    {
        if(getInstance()._ignoreWarnings)
        {
            return;
        } else
        {
            getInstance().log("[Facebook - WARNING] " + message);
            return;
        }
    }

    public static void printTotalMemory()
    {
        println("Total memory: " + Runtime.getRuntime().totalMemory());
    }

    public static void printFreeMemory()
    {
        println("Free memory: " + Runtime.getRuntime().freeMemory());
    }

    private synchronized void log(String message)
    {
        if(getInstance()._ignoreOutput)
            return;
        if(_logToFile && _fileLogConnection == null)
            openFileForLogging();
        if(_logToFile)
            writeToFile(message);
        else
            System.out.println(message);
    }

    private void writeToFile(String message)
    {
        try
        {
            _fileLog.write((message + "\n").getBytes());
            _fileLog.flush();
        }
        catch(IOException exception)
        {
            System.err.println("Could not write message to file. Switching to STDOUT logging.\n" + exception.toString());
            try
            {
                if(_fileLog != null)
                    _fileLog.close();
                if(_fileLog != null)
                    _fileLogConnection.close();
            }
            catch(IOException closeException) { }
            _logToFile = false;
            _fileLog = null;
            _fileLogConnection = null;
            System.out.println(message);
        }
    }

    private void openFileForLogging()
    {
        try
        {
            _fileLogConnection = (FileConnection)Connector.open(fileName, 3, true);
            if(_fileLogConnection.exists())
                _fileLogConnection.truncate(0L);
            else
                _fileLogConnection.create();
            _fileLog = _fileLogConnection.openOutputStream();
        }
        catch(IOException exception)
        {
            System.err.println("Could not open log file. Switching to STDOUT logging.\n" + exception.toString());
            try
            {
                if(_fileLog != null)
                    _fileLog.close();
                if(_fileLog != null)
                    _fileLogConnection.close();
            }
            catch(IOException closeException) { }
            _logToFile = false;
            _fileLog = null;
            _fileLogConnection = null;
        }
    }

    private static Logger _instance = null;
    private String fileName;
    private boolean _logToFile;
    private boolean _ignoreWarnings;
    private boolean _ignoreErrors;
    private boolean _ignoreOutput;
    private FileConnection _fileLogConnection;
    private OutputStream _fileLog;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?