The Logger in Java and Android

21 篇文章 0 订阅

转载: http://whotodo.iteye.com/blog/1701596


在面向对象的世界里,我们可以将对象拟人化。它们不仅拥有资源(数据),还能实现一些功能(方法)。Logger就是Java自带的,Android也支持的一个可以将log信息写到控制台或文件的log信息记录员。

    package org.vhow.android;  
      
    import java.io.IOException;  
    import java.util.logging.ConsoleHandler;  
    import java.util.logging.FileHandler;  
    import java.util.logging.Level;  
    import java.util.logging.Logger;  
      
    public class AppMain {  
      
        public static void main(String[] args) throws SecurityException,  
                IOException {  
            // Create a Logger whose name is "AppMain"  
            Logger aLogger = Logger.getLogger(AppMain.class.getName());  
      
            // This Logger object will records all kinds of logs.  
            aLogger.setLevel(Level.ALL);  
      
            // Write logging message to Console.  
            sentLogMessageToConsole(aLogger);  
      
            // Writer logging message to a File.  
            sentLogMessageToFile(aLogger);  
      
            // Log a message.  
            aLogger.log(Level.INFO, "info");  
      
        }  
      
        private static void sentLogMessageToConsole(Logger aLogger) {  
            // A ConsoleHandler object can publish records to System.err.  
            ConsoleHandler aConsoleHandler = new ConsoleHandler();  
      
            // All kinds of logs will be logged by this handler.  
            aConsoleHandler.setLevel(Level.ALL);  
      
            // Format LogRecords for this Handler.  
            aConsoleHandler.setFormatter(new LogRecordFormatter());  
      
            // Add the ConsoleHanler object to receive the logging messages.  
            aLogger.addHandler(aConsoleHandler);  
        }  
      
        private static void sentLogMessageToFile(Logger aLogger) throws IOException {  
            // A FileHandler object can writer log message to a file.  
            FileHandler aFileHandler = new FileHandler("logs.log");  
      
            // All kinds of logs will be logged by this handler  
            aFileHandler.setLevel(Level.ALL);  
      
            // / Add the FileHandler object to receive the logging messages.  
            aLogger.addHandler(aFileHandler);  
        }  
      
    }  

我们还需要一个定义log record格式的类

    package org.vhow.android;  
      
    import java.text.SimpleDateFormat;  
    import java.util.Date;  
    import java.util.logging.Formatter;  
    import java.util.logging.LogRecord;  
      
    class LogRecordFormatter extends Formatter {  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
        Date date;  
      
        @Override  
        public String format(LogRecord record) {  
            date = new Date(record.getMillis());  
            return dateFormat.format(date) + ", " + record.getSourceClassName()  
                    + ", " + record.getSourceMethodName() + ", "  
                    + record.getLevel() + ": " + record.getMessage() + "\n";  
        }  
      
    }  

如果我们不规定log信息的格式,则默认的打到控制台的log格式如下:

默认写到文件中的log格式如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值