Android 使用log4j管理日志

Posted 小zhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 使用log4j管理日志相关的知识,希望对你有一定的参考价值。

log4j是我在Java开发中比较常用的日志管理工具了,同样的我们也可以在android中使用。在Android中不需要配置文件进行配置,一切都在代码中完成。

一、下载jar包:

log4j-1.2.17.jar
android-logging-log4j-1.0.3.jar

二、在AndroidManifest.xml中配置文件读取权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

三、使用方法1:

public class MainActivity extends AppCompatActivity 

    private Logger testLogger;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        configLog();

        testLogger.debug("log4j test in android !");//打印需要的内容

    

    public void configLog() 

        // 日志配置设置
        final LogConfigurator logConfigurator = new LogConfigurator();
        
        // 配置日志文件路径
        logConfigurator.setFileName(Environment.getExternalStorageDirectory() + File.separator + "log4j_test.txt");

        logConfigurator.configure();

        testLogger = Logger.getLogger("Log4jTest");
    


四:使用方法2:

import android.os.Environment;
 
import org.apache.log4j.Level;
 
import java.io.File;
import java.util.Date;
 
import de.mindpipe.android.logging.log4j.LogConfigurator;
 
/**
 * 日志设置
 */
public class ConfigureLog4J 
//日志级别优先度从高到低:OFF(关闭),FATAL(致命),ERROR(错误),WARN(警告),INFO(信息),DEBUG(调试),ALL(打开所有的日志,我的理解与DEBUG级别好像没有什么区别得)
//Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。
    // "yyyy-MM-dd");// 日志的输出格式
 
    public static void configure() 
        final LogConfigurator logConfigurator = new LogConfigurator();
        Date nowtime = new Date();
        // String needWriteMessage = myLogSdf.format(nowtime);
        //日志文件路径地址:SD卡下myc文件夹log文件夹的test文件
        String fileName = Environment.getExternalStorageDirectory()
                + File.separator + "myc" + File.separator + "log"
                + File.separator + "test.log";
        //设置文件名
        logConfigurator.setFileName(fileName);
        //设置root日志输出级别 默认为DEBUG
        logConfigurator.setRootLevel(Level.DEBUG);
        // 设置日志输出级别
        logConfigurator.setLevel("org.apache", Level.INFO);
        //设置 输出到日志文件的文字格式 默认 %d %-5p [%c2]-[%L] %m%n
        logConfigurator.setFilePattern("%d %-5p [%c2]-[%L] %m%n");
        //设置输出到控制台的文字格式 默认%m%n
        logConfigurator.setLogCatPattern("%m%n");
        //设置总文件大小
        logConfigurator.setMaxFileSize(1024 * 1024 * 5);
        //设置最大产生的文件个数
        logConfigurator.setMaxBackupSize(1);
        //设置所有消息是否被立刻输出 默认为true,false 不输出
        logConfigurator.setImmediateFlush(true);
        //是否本地控制台打印输出 默认为true ,false不输出
        logConfigurator.setUseLogCatAppender(true);
        //设置是否启用文件附加,默认为true。false为覆盖文件
        logConfigurator.setUseFileAppender(true);
        //设置是否重置配置文件,默认为true
        logConfigurator.setResetConfiguration(true);
        //是否显示内部初始化日志,默认为false
        logConfigurator.setInternalDebugging(false);
 
        logConfigurator.configure();
 
    

在主acrivity中使用以下代码即可

 //加载配置
 ConfigureLog4J configureLog4J=new ConfigureLog4J();
 configureLog4J.configure();
 //初始化 log
 Logger log=Logger.getLogger(this.getClass());
 //写 info 日志
 log.info("不知道呀就是测试一下啊");      

以上是关于Android 使用log4j管理日志的主要内容,如果未能解决你的问题,请参考以下文章

Android 使用log4j管理日志

springboot日志管理+集成log4j

项目log4j日志管理详解

使用log4j进行日志管理

日志管理-log4j与slf4j的使用

玩转Nodejs日志管理log4js(转)