文档章节

C 输出log到LogCat

 草帽行者
发布于 2017/04/28 15:51
字数 434
阅读 28
收藏 0
点赞 0
评论 0

C 输出log到LogCat

[TOC]

1. 新建c文件

2. 添加头文件

#include <android/log.h>

#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
#include <android/log.h>

3. 添加日志输出标志

格式:#define LOG "LogCat中输出日志的标志"

#define LOG "c_log"

4. 给log.h对应的日志输出方法添加别名

格式:#define LOGI(...) __android_log_print(日志等级,日志标志,__VA_ARGS__)

日志等级

  • ANDROID_LOG_VERBOSE
  • ANDROID_LOG_DEBUG
  • ANDROID_LOG_INFO
  • ANDROID_LOG_WARN
  • ANDROID_LOG_ERROR (日志颜色:红色)
  • ANDROID_LOG_FATAL (日志颜色:红色)
#define LOG "c_log"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,LOG,__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__)
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__)

5. 调用对应的方法进行日志输出

LOGV("c输出测试: 等级v");
LOGD("c输出测试: 等级d");
LOGI("c输出测试: 等级i");
LOGW("c输出测试: 等级w");
LOGE("c输出测试: 等级e");
LOGF("c输出测试: 等级f");

6. LogCat显示结果

04-28 15:38:37.328 17454-17454/com.myc D/c_log: c输出测试: 等级d
04-28 15:38:37.328 17454-17454/com.myc I/c_log: c输出测试: 等级i
04-28 15:38:37.328 17454-17454/com.myc W/c_log: c输出测试: 等级w
04-28 15:38:37.328 17454-17454/com.myc E/c_log: c输出测试: 等级e
04-28 15:38:37.328 17454-17454/com.myc A/c_log: c输出测试: 等级f

7. 完整的c文件

#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
#include <android/log.h>

#define LOG "c_log"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,LOG,__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__)
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__)

JNIEXPORT void JNICALL
Java_com_myc_jni_Jni_cLog(JNIEnv *env, jobject instance) {
    LOGV("c输出测试: 等级v");
    LOGD("c输出测试: 等级d");
    LOGI("c输出测试: 等级i");
    LOGW("c输出测试: 等级w");
    LOGE("c输出测试: 等级e");
    LOGF("c输出测试: 等级f");
}

© 著作权归作者所有

共有 人打赏支持
粉丝 6
博文 35
码字总数 29999
作品 0
广州
程序员
Adb logcat 学习汇总

adb logcat -t 10 -v time adb logcat -t 10 -v time 打印最后的10行log信息,每行log信息前带上时间 C:Usersbeijing_zbs>adb logcat -t 10 -v time--------- beginning of /dev/log/system-......

beijing_zbs
2014/10/28
0
0
Android开发中调试日志的输出方法

程序中输出日志, 使用 android.util.Log 类. 该类提供了若干静态方法 Log.v(String tag, String msg); Log.d(String tag, String msg); Log.i(String tag, String msg); Log.w(String tag, S......

我希冀着
2016/07/22
23
0
Adb logcat指令说明

一、logcat命令示例 1. adb logcat -v time -s test *:d>d:log.txt 打印出标签带"test"的debug日志到log.txt 2. adb logcat - v time findstr "test" >d:log.txt 只将带"test"的信息打印出来......

孟飞阳
2016/07/05
42
0
Logcat相关

一个Android应用程序运行后 并不会在 IDE 的控制台内输出任何信息. 不能在控制台输出。但是android提供的Log类。 在程序中输出日志, 使用 android.util.Log 类. 该类提供了若干静态方法 Log....

木头板板
2016/07/14
3
0
如何过滤 adb logcat 输出

简介: 本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 开发当中经常看到别人的 log 如洪水般瞬间刷满了屏幕,对自己有用的信息都被淹没了,影响心情也影响效率。下面是几...

mahb520
2014/11/28
0
0
如何过滤 adb logcat 命令的输出

本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 开发当中经常看到别人的 log 如洪水般瞬间刷满了屏幕,对自己有用的信息都被淹没了,影响心情也影响效率。下面是几个我所...

雨焰
2013/07/24
0
1
adb常用命令的使用

与设备相关的命令 获取所有连接上的设备: adb devices 指定唯一USB连接设备: adb –d <serialNumber> <command> 指定唯一emulator: adb –e <serialNumber> <command> 当有多个手机和emulato......

PeakerChen
2015/12/06
295
0
android log机制——用logcat读取log

前文我们了解到,在android系统中打log,其实就是向几个设备文件中的一个中写入字符串。但我们又要如何来查看这些log呢?是logcat工具,它会读取log,对log做一个格式化,然后呈现给我们。下...

WolfCS
2013/10/02
0
0
Android wifi adb

连接开发板时使用wifi adb连接步骤: 1.安装Xshell,新建会话,协议选择"SERIAL",在SERIAL中选择Port:COM3,BaudRate:115200,DataBits:8 2.进入后,输入以下命令: stop adbd setprop serv...

SRain215
2016/06/14
50
0
【Developing】Reading and Writing Logs-读写日志

Android日志系统提供了一套机制,用于收集并查看系统的调试输出信息。 Logcat转储包含 stack traces的系统信息的日志,你可以通过ADB或是DDMS来运行LogCat。通过LogCat,你可以实时地读取日志...

LiangX
2012/04/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JPA @MappedSuperclass 注解说明

基于代码复用和模型分离的思想,在项目开发中使用JPA的@MappedSuperclass注解将实体类的多个属性分别封装到不同的非实体类中。 1.@MappedSuperclass注解只能标准在类上:@Target({java.lang....

海博1600
6分钟前
0
0
Scala Configuration 相关API

Play使用了 Typesafe config library,但是也提供了一个有着更多Scala高级特性的的 Configuration 封装。不熟悉Typesafe配置的开发者可以移步 configuration文件的语法和特性文档。 读取配置...

Landas
今天
1
0
使用cookie技术 记住账号

1. 效果 2. 实现过程 2.1 前端 将用户的选中传递给后台 这个参数的获取是 参考:https://my.oschina.net/springMVCAndspring/blog/1860498 // var rememberLogin = $("#rememberLoginId").i...

Lucky_Me
今天
1
0
《趣谈网络协议》02之网络分层的真实含义

一、提出问题 1.提出问题 当你听到什么二层设备、三层设备、四层 LB 和七层 LB 中层的时候,是否有点一头雾水,不知道这些所谓的层,对应的各种协议具体要做什么“工作”? 2.这四个问题你弄...

aibinxiao
今天
2
0
Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
今天
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
今天
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
今天
1
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
今天
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
今天
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部