分享一个将Log记录到文件中的工具类

原创 2014年01月15日 21:16:31

本人博客地址: www.grackertalk.com ,欢迎收藏和访问


1.Log2File工具类的作用

这个工具类是用于Android程序将Log记录到文件中的类,类很简单,复制粘贴过去就可以直接用。
应用场景:
  1. 无法连接电脑进行调试(usb线被usbotg占用)
  2. Log不容易被抓取
  3. Bug出现很随机,不是必出现
  4. 其他自己脑补

2.Log2File工具类源码

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

import android.content.Context;
import android.os.Environment;

public class Log2File
{
    private static boolean  logInit;
    private static BufferedWriter writer;
    
    private Log2File()
    {
        
    }
    
    /**
     * 初始化Log,创建log文件
     * @param ctx
     * @param fileName
     * @return
     */
    public static boolean init(Context ctx, String fileName)
    {
        if(!logInit)
        {           
            String state = Environment.getExternalStorageState();
            if (Environment.MEDIA_MOUNTED.equals(state))
            {
                File sdDir = Environment.getExternalStorageDirectory();
                File logDir = new File(sdDir.getAbsolutePath() + "/log2file/" + 
                        ctx.getPackageName() + "/");
                
                try {
                    if(!logDir.exists())
                    {
                        logDir.mkdirs();
                    }
                    
                    File logFile = new File(logDir, fileName);
                    logFile.createNewFile();
                    
                    writer = new BufferedWriter(new FileWriter(logFile, true));
                    logInit = true;
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            
        }
        
        return logInit;
    }
    
    /**
     * 写一条log
     * @param msg
     */
    public static void w(String msg)
    {
        if(logInit)
        {
            try {
                Date date = new Date();
                writer.write("[" + date.toLocaleString() + "] " + msg);
                writer.newLine();
                writer.flush();
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
        }
    }
    
    /**
     * 关闭log
     */
    public static void close()
    {
        if(logInit)
        {
            try {
                writer.close();
                writer = null;
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            logInit = false;
        }
    }
}

3.Log2File工具类的使用

这个工具类的使用比较简单,
1.首先调用init进行初始化
<pre code_snippet_id="158203" snippet_file_name="blog_20140115_2_2856205" name="code" class="java">public static boolean init(Context ctx, String fileName)


2.调用w写入log

   public static void w(String msg)
3.使用完毕后,记得要关闭Log

    public static void close()

编写守护进程,并使用守护进程按要求生成.log文件

1.编写一守护进程,每隔30秒,将系统当前进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数等信息按照如下格式写入到procinfo.log文件中。 格式可类似为: 2013-11-10 20:...
  • Namer_Mega
  • Namer_Mega
  • 2014-12-17 10:55:14
  • 642

使用 daemon()函数创建守护进程的用法,变为守护进程后程序每 60 秒打印当前的时间信息到/tmp/daemon.log 文件中

#include #include #include #include #include #include int main(void) { int fd; time_t...
  • qq_24296855
  • qq_24296855
  • 2015-08-21 16:44:22
  • 140

守护进程的详细总结(包括实例解析)

本文转载自http://blog.csdn.net/liangxanhai/article/details/77528981、 守护进程的概念:守护进程(Daemon)是一种运行在后台的一种特殊的进程...
  • hh930413
  • hh930413
  • 2017-06-19 14:44:16
  • 141

用守护进程来判断一个进程是否运行

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,I...
  • bv1315008634
  • bv1315008634
  • 2016-10-23 21:03:37
  • 937

进程学习:4-守护进程的出错记录

一、守护进程的出错记录        守护进程不像普通程序,在调试的时候可以使用gdb或是在编译的时候出现在终端上的报错原因和行号,所以在编写守护进程的时候出错处理就变得十分重要。      所以...
  • AI_for_leo
  • AI_for_leo
  • 2016-11-14 17:31:27
  • 305

每隔5分钟统计一次记录的应用实例

一张电话报表(id,time,telephone) time:表示顾客打入时记录的时间实例如下:1 2006-06-11 05:52:12 13600654607582 2006-06-11 06:0...
  • htl258
  • htl258
  • 2010-04-17 22:41:00
  • 1903

linux守护进程的详解与创建

一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个...
  • yusiguyuan
  • yusiguyuan
  • 2014-04-11 08:29:14
  • 1624

linux守护进程--定期向文件中插入log记录

自己动手实现一个守护进程,当控制台窗口关闭时还可以在后台运行,每隔一秒钟向my.log文件中插入一条记录,记录格式如下:yyyy-mm-dd hh:mi:se 。...
  • waldmer
  • waldmer
  • 2015-03-29 19:53:49
  • 1074

编写Linux/Unix守护进程

    守 护进程在Linux/Unix系统中有着广泛的应用。有时,开发人员也想把自己的程序变成守护进程。在创建一个守护进程的时候,...
  • hnhbdss
  • hnhbdss
  • 2007-01-25 14:19:00
  • 543

ubuntu下编写开机自启守护进程,并记录进程信息到日志文件

步骤1:编写守护进程 void init(){ pid_t pid; int i; pid=fork(); //创建第一子进程 if(pid0) exit(0);//父进程退出...
  • liquanfeng326
  • liquanfeng326
  • 2013-04-15 18:25:51
  • 1885
收藏助手
不良信息举报
您举报文章:分享一个将Log记录到文件中的工具类
举报原因:
原因补充:

(最多只允许输入30个字)