精华内容
下载资源
问答
  • 1. 前提:     android系统把标准输出stdout从定向到/dev/null 中,所以...使用头文件: # include需要打印log使用: __libc_format_log()例子: # includeprivate/logc_logging.h> //也可以是 #include "pri

    1. 前提:

        android系统把标准输出stdout从定向到/dev/null 中,所以logcat无法查看printf()打印的log信息。

    2. 实际操作:

    1. 使用头文件: # include<private/logc_logging.h>
    2. 需要打印log使用: __libc_format_log()
    3. 例子:
    # include<private/logc_logging.h>  //也可以是 #include "private/libc_logging.h"
    
    xxx_func() {
        /** 
         * int __libc_format_log(int priority, const char* tag, const char* format, ...)
         * 
         * priority : int, 是在private/libc_logging.h定义的log的level,与java层的类似。
         *   参考"/bionic/libc/bionic/private/libc_logging.h" 定义的ANDROID_LOG_DEBUG。
         * tag :    char* , log的Tag信息。
         * format : char* , 格式化的字符串, 
         */
        char * tag = "DroidMage"; 
        char * format = "%s"; 
        char * msg = "This is for test!";
        __libc_format_log(ANDROID_LOG_DEBUG, tag, format, msg);
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    Note: Google好久都没什么好的发现,有一天浏览bionic源码,发现android底层有打印log的方法。(以android源码为根目录): /bionic/libc/private/logc_logging.cpp

    展开全文
  • Android 自定义打印log

    千次阅读 2016-04-26 14:03:21
    如果我们在开发过程中只要debug状态时打印log, 在release环境就不会打印log,可如下封装(适用于gradle编译): 就是检测BuildConfig.DEBUG的值 if (BuildConfig.DEBUG) { Log.v(tag, message); } 二。...

    一。如果我们在开发过程中只要debug状态时打印log,

    在release环境就不会打印log,可如下封装(适用于gradle编译):

    就是检测BuildConfig.DEBUG的值
    if (BuildConfig.DEBUG) {
    Log.v(tag, message);
    }


    二。控制打印某个log level以下的日志

    if (BuildConfig.DEBUG && Log.isLoggable("volley", Log.VERBOSE)) {

    Log.v("volley", message);

    }


    这里我们在打印tag为volley的日志之前,先判断当前的Log level是否是大于等于VERBOSE的,我们期望的是tag为volley的日志仅当log level大于等于VERBOSE的时候才打印出来,就可以使用以下命令:

    adb shell setprop log.tag.<YOUR_LOG_TAG>  <LEVEL>

    例如:

    adb shell setprop log.tag.volley VERBOSE  只打印我们定义的tag为volley且level是VERBOSE  的log


    LEVEL的值可以是VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, 或者 SUPPRESS, SUPPRESS会禁止打印所有日志。


    在android源码中SQLiteDebug.java中就有这样的实现:

    adb shell setprop log.tag.SQLiteLog V  打印  tag是SQLiteLog 的VERBOSE级别的日志
    adb shell setprop log.tag.SQLiteStatements V  打印  tag是SQLiteStatements 的VERBOSE级别的日志
    adb shell stop  关闭日志
    adb shell start 开启日志




    展开全文
  • Android中日志打印 Log的使用

    千次阅读 2018-01-13 02:53:21
    【Android Studio】日志打印 Log的使用

    Log等级划分

    Log.v("Tag","Msg");//Verbose  观察值,Verbose是冗长、啰嗦的意思,任何消息都会输出
    Log.d("Tag","Msg");//Debug  调试
    Log.i("Tag","Msg");//Info  信息,为一般提示性的消息
    Log.w("Tag","Msg");//Warn  可能会出问题,一般用于系统提示开发者需要优化android代码等场景
    Log.e("Tag","Msg");//Error  崩溃信息,一般用于输出异常和报错信息
    

    Android Studio 中 Logcat 观察打印日志,可以筛选级别,如果选择 Verbose 可以查看所有,如果选择 Debug,Debug以上的Verbose级别不能查看,Debug和以下级别可以查看,依次类推

    这里写图片描述

    右侧输入框可以通过第一个参数Tag来筛选日志信息

    Log使用规范

    1、在app中,一般不允许使用 VERBOSE 级别的 log,对于 INFO、WARN 级别的 log,允许极少量打印重要信息。这是工作中的要求,系统源码中其实对这三个等级用得也不少,例如,系统打印一般 Exception 信息时,就是用的 WARN 级别 log

    2、只有在出现极严重错误的时候,才允许使用 ERROR 级别,一般的信息要是用 DEBUG 级别(在后面讲 Log.isLoggable() 的时候,会讲到用 DEBUG 级别的好处)。当系统报 Fatal Exception 的时候,就是用的 ERROR 级别的 log

    3、用户的隐私信息禁止打印,比如:IMEI、手机号、密码、银行卡号等。在国外,一些法律也对Log内容做了严格的要求

    4、Log中不要打印太多具体实现的细节,这样会导致通过 log 就能猜到架构的设计和代码的实现

    5、Log中不能暴露核心算法或机制细节,比如核心算法相关信息、应用和框架间函数的调用流程等

    6、禁止在循环打印log。在循环条件、频繁操作、频繁调用的接口、ACTION_MOVE事件、重复打印等地方,一定要控制好 log 的使用。在单位时间内,不同性质的应用对 log 的数目有一定的要求,对每条 log 的大小也有一定的限制。因为大量或者频繁的 log,对 app 的性能有一定的影响。即便是有 log 开关控制日志的输出与否,字符串的拼接也是会耗掉一些性能和资源的

    7、打印捕捉到的异常堆栈必须谨慎,如不需要打印堆栈就能定位问题,就尽量不要打印堆栈,若确实需要堆栈,在同一堆栈,尽量控制打印频度

    8、对于 Android 源码中自带的 log,尽量不要修改。在Event Log中,就严禁修改源码自带的log

    9、Log 中的 TAG,一般以所划分的功能模块命名,log 信息也最好用类名,方法名拼接为前缀。这样做的目的就是在查看 log 的时候,方便定位,对分析问题很有帮助

    上述不仅包含使用规范,也包含了部分log使用小技巧。这些规范中有些会根据不同公司,不同严格程度而有所不同,而有些则需要统一遵守其规范的,读者可以根据具体情况斟酌。

    Android Studio中log使用

    Logcat中选择筛选条件

    在这里插入图片描述
    最后一项,Show only selected application表示只显示当前选中程序的日志,也就是第二项选中的app 进程
    Firebase是Google 提供的一个开发者工具和基础架构平台,先不管
    Nofilter相当于没有过滤器,会把所有日志显示出来
    Edit Filter Configuration可以自定义过滤器,我们来试一下,点击 Edit Filter Configuration,给过滤器起名 data,让它对名为 data 的 tag 过虑
    在这里插入图片描述
    然后你会发现多了个过滤器
    在这里插入图片描述

    Log信息颜色设置

    为了便于查看不同等级的 log,Android Studio 对不同等级的 log 信息设置了不同的颜色。设置路径为:File > Settings > Editor > Colors Scheme > Android Logcat。或者直接搜索 log 即可找到,如下截图所示:
    在这里插入图片描述
    我设置的色值如下

    Assert #8F0005
    Verbose #000000
    Debug #0070BB
    Info #48BB31
    Warning #BBBB23
    Error #FF0006

    当然颜色可以自己随便设置,但是一般遵守约定俗称的规定,比如,ERROR 级别的 log,就往往被设置为红色

    Log信息说明

    在这里插入图片描述

    写一份便于使用的Log辅助类

    public class Logger {
    
        //设为false关闭日志
        private static final boolean LOG_ENABLE = true;
    
        public static void i(String tag, String msg){
            if (LOG_ENABLE){
                Log.i(tag, msg);
            }
        }
        public static void v(String tag, String msg){
            if (LOG_ENABLE){
                Log.v(tag, msg);
            }
        }
        public static void d(String tag, String msg){
            if (LOG_ENABLE){
                Log.d(tag, msg);
            }
        }
        public static void w(String tag, String msg){
            if (LOG_ENABLE){
                Log.w(tag, msg);
            }
        }
        public static void e(String tag, String msg){
            if (LOG_ENABLE){
                Log.e(tag, msg);
            }
        }
    
    }
    

    原文

    展开全文
  • 华为手机打印log日志

    千次阅读 2016-12-29 15:59:05
    华为手机不打印log错误日志

    华为手机不打印log错误日志


    原因:

            手机为默认关闭此功能


    处理方法:

           在手机拨号盘输入: *#*#2846579#*#*

           进入设置页---->进行设置---->打开log日志


    展开全文
  • CC2530 串口打印log

    千次阅读 2016-12-06 10:51:28
    2530的仿真器运行过程中不能打断点,所以很多时候,串口打印log就很重要了,花了点时间,做了一个debug的打印代码,加上可变参数,不过因为只是用来打印log的,没有用来接收,所以只有发送,用的是寄存器直接发送,...
  • Android 实现在界面实时打印log

    千次阅读 2019-03-02 17:10:41
    要实现在Android 界面实时打印log,需要注意以下三点: 1、需要文件用来存储log 2、要实现实时打印,本文采用广播的形式 3、打印的log 以多个textview 的形式展现出来 既然要通过文件来保存log,自然少不了要对文件...
  • idea部署到tomcat不打印log https://www.cnblogs.com/xiaoliangyuu/p/11486741.html 问题表现: 如下图,测试,部署启动idea,未打印log。使用的log4j 原因及解决: 如下图的路径配置错误导致的,修改之前...
  • 目录 linux下C语言编程打印log日志 linux下C语言编程打印log日志 前言 ​ linux的日志系统一直以来都是在linux上开发必学的一部分内容。之前在学习openstack的时候,在对openstack组件的发生的错误进行调试时,老师...
  • wildfly的server.log里,执行程序不打印log了 我遇到这种情况是因为我将server.log直接删除了,即使重新拷贝一个server.log也不好使。 解决方法:重新启动wildfly 注意:不能删除server.log,但可以清空里面的...
  • maven项目打印log_05

    千次阅读 2017-04-04 17:18:27
    maven项目打印log 1.在maven的配置文件pom.xml文件进入log4j的jar包    log4j  log4j  1.2.17 2.在maven项目的src/test/java目录下新建log4j.properties文件,内容如下: ### \u8BBE\...
  • 1.将Log打印在输出日志中 UE_LOG(LogLoad, Log, TEXT("MyLog.")); 其中第一个参数表示Log的类别。用于在输出日志中做区分。 第二个参数表示打印出的Log的颜色: Warning,输出的Log颜色为黄色; Log,输出的...
  • Android 在屏幕上打印LOG

    千次阅读 2017-08-02 12:03:14
    Android开发中需要迅速定位问题,在android 屏幕上打印LOG,是一个很好的通道 基本的思路:启动LogService读取指定log,使用WindowManager展示到屏幕上 直接上代码 public class LogService extends ...
  • Eclipse NDK 打印LOG信息

    千次阅读 2015-06-11 00:21:14
    本文介绍Eclipse 的 NDK 环境如何打印log信息 如何编译NDK项目请参考 NDK使用流程 流程 在C中引用头文件,定义TAG、LOG 宏配置 Android.mkJava编写测试方法 1.编辑c文件 引用android/log.h 头文件 #include ...
  • 用shell命令写打印log信息脚本信息

    千次阅读 2019-07-22 18:57:13
    用shell命令写打印log信息脚本 下面让RK的编译脚本在编译u-boot kernel android update.img时分别用文件uboot.log kernel.log android.log package.log记录编译时产生的log信息 修改后的脚本如下: #!/bin/bash # ...
  • 解决studio打release包不打印log问题

    千次阅读 2017-05-27 14:39:59
    今天打包调试时遇到一个问题,打debug包的时候,可以打印log日志,但是打release包的时候就不显示log日志了,调试起来很麻烦,后来经过查询,终于解决问题 原来so easy //生产环境 release { signingConfig...
  • Android中打印log

    千次阅读 2011-02-22 20:24:00
    1、首先在你想要打印log的.c或.cpp文件里include<cutils/log.h> 几乎所有的打印函数的宏都记录在该头文件里。  2、其次,在你想输出log的地方使用打印函数android_printLog(); 该函数具体写法如下...
  • rk3288之释放打印log的串口

    千次阅读 2016-12-19 14:42:20
    rk3288释放打印log的串口
  • http://blog.163.com/zhuowh2006@126/blog/static/1018237242013730105546300/ android jni打印log 引入包 #include #include #include #define LOG_TAG "LOG_TEST" #define LOGI(...) __android_log
  • 关于打印log调试踩过的坑

    千次阅读 2018-02-03 15:00:36
    开发的时候,免不了要进行各种调试,像使用debug啊,打印log啊之类的。今天就说一下我自己在打印log调试的时候踩过的坑。 Log.i("info", "adderrorInfo”:+discover); 就像这样的一句话,我在一个adapter类的...
  • stm32实现printf打印log的几种办法

    万次阅读 2018-10-01 18:49:57
    在stm32单片机下,改一些bug的时候,光靠调试还不行,有时候需要打印log来查看某些变量在一段时间内的变化趋势,但是板卡又没有接串口,没办法重定向到串口打印,上网查资料研究了一下,发现以下几种办法可实现...
  • js打印Log

    千次阅读 2018-05-03 12:18:45
    alert('HelloWorld'); 效果弹出弹窗console.log(data);效果是在调试页面记录数据
  • netty 打印 log 日志

    万次阅读 2018-05-03 16:20:29
    Netty是一个简化Java NIO编程的网络框架。就像人要吃饭一样,框架也要打日志。Netty不像大多数框架,默认支持某一种日志实现。相反,Netty本身实现了一套日志机制,但这套日志机制并不会真正去打日志。...
  • 打印log是开发阶段,调试过程中是必不可少的一步,objective-c时代我们可以使用宏定义来设置工程debug模式下打印log,release模式下不打印log,但是过度到swift之后,我们发现swift的版本特性,不具有宏这种东西,...
  • Android Studio 写打印Log的代码出错

    千次阅读 2015-09-01 10:32:26
    在写程序的时候,有时候我们需要打印log,看输出的结果。然而在用Android Studio的时候,有时候打印log的代码会出现错误。下来看看我们如何解决这个问题。 出现这个问提的原因是因为log太长,我们这需要进行入一下的...
  • Android 9.0 MTK8765uart串口不打印log信息

    千次阅读 2019-03-28 15:37:52
    Android 9.0 MTK8765 uart串口不打印log信息 mtk uart串口信息是包含pl lk kernel层log信息 本次项目的包含两组uart口 uart0,uart1客户要使用uart用于通信功能 1 配置好GPIO口信息 1)配置dts文件 查看原理图和...
  • 有一次电脑中毒,手机的驱动也挂掉了,于是就发生了连接不上电脑,解决完了又发现打印不了log.i级别的log信息,只打印log.w以上的信息:我还是纠结是不是手机驱动程序的问题,后来有人告诉我正确的解决方法: ...
  • 使用jni实现在C语言中打印log信息

    千次阅读 2016-05-12 10:41:34
    这篇博客将介绍jni的一个简单应用,使用jni实现在C语言中打印log信息 在写代码前,先看一下实现效果 启动app后会弹出一个界面,界面上有一个在c语言中打印log信息按钮 点击按钮后可以看到在logcat分别用debug...
  • C++ MFC打印LOG

    千次阅读 2018-09-07 11:27:28
    三种种方式直接用: /*char * str = "dismissed with Cancel"; HANDLE HConsole; AllocConsole();..."打印消息" ); WriteConsole(hConsoleOutput, Msg, Msg .GetLength (), NULL , NULL );
  • ios调试打印log发布去log

    千次阅读 2016-10-14 10:52:03
    前提:在开发过程,我们为了调试经常要打印日志信息,但在发布版本时,打印信息是会消耗应用性能的。 情况一:初始化项目时,在预编译文件PrefixHeader.pch中做判断,把NSLog替换成自己的log,t调试时使用自己的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,486
精华内容 9,794
关键字:

打印log