导航:首页 > 净水问答 > adt中的日志过滤器如何设置

adt中的日志过滤器如何设置

发布时间:2021-11-09 11:48:02

① Android-android Logcat怎么让它只显示我自己的应用程序信息

如果使用的是 Eclipse 作为 IDE 的话,用 ADT 所提供的 logcat 显示界面可以直接做到你的需求。
在编辑的位置输入
app:your.package.name
便可以自动过滤包名为 your.package.name 的软件输出信息啦,如果在编写软件时注意了 Log.X 的使用,通过旁边的下拉菜单还可以根据日志的等级进行再一次进行的过滤。

TODO:
1. 打开 LogCat
2. 输入需要的包名,如图上的 com.android.phone
3. 根据需要选择日志等级,当然,如果没有细致的 Log.X 输出的话,推荐使用 verbose(详细)
4. 查看过滤后的结果
5. 待解决问题后,记得将 app:com.android.phone 删除,否则过滤会持续生效
后话:如果不嫌麻烦,在左边的 Saved Filters 字样旁边有一个加号,通过它可以手动生成一个可以保存的过滤器,可涉及的过滤范围诸如:日志等级、进程ID、包名等。

② 如何获取 android 的系统日志

读取日志需要的权限

1

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

主要代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

package mt.fzgh;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class MyLog
{
public static class MLog //<a href="https://www..com/s?wd=%E9%9D%99%E6%80%81%E7%B1%BB&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">静态类</a>
{
public static void getLog()
{
System.out.println("--------func start--------"); // 方法启动
try
{
ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志
cmdLine.add("logcat");
cmdLine.add("-d");

ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志
clearLog.add("logcat");
clearLog.add("-c");

Process process=Runtime.getRuntime().exec(cmdLine.toArray(new String[cmdLine.size()])); //捕获日志
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //将捕获内容转换为BufferedReader

// Runtime.runFinalizersOnExit(true);
String str=null;
while((str=bufferedReader.readLine())!=null) //开始读取日志,每次读取一行
{
Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()])); //清理日志....这里至关重要,不清理的话,任何操作都将产生新的日志,代码进入死循环,直到bufferreader满
System.out.println(str); //输出,在logcat中查看效果,也可以是其他操作,比如发送给服务器..
}
if(str==null)
{
System.out.println("-- is null --");
}
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("--------func end--------");
}
}
}

这里比较令人纠结的一点就是日志的清理 logcat -c 如果不加入 清理 在buffer满为止,代码自身能够迭代6~7次....

附带一份logcat的 命令...不过好像 过滤器 指令有问题....慎用
选项 说明
-s 默认设置过滤器
- f 文件 输出到日志文件
-c 清除日志
-d 获取日志
-g 获取日志的大小
- v 格式 设置日志(见下面的格式打印格式)

- v 格式 例
brief W/tag ( 876): message
process W( 876) message (tag)
tag W/tag : message
thread W( 876:0x37c) message
raw message
time 09-08 05:40:26.729 W/tag ( 876): message
threadtime 09-08 05:40:26.729 876 892 W tag : message
long [09-08 05:40:26.729 876:0x37c W/tag ] message

③ 安卓怎么添加saved filters

安卓的【saved filters】,只有安卓ADT开发平台LogCat窗口(对日志的过滤)工具栏有【saved filters】。

打开Window>showView>选择LogCat,新窗口左侧工具栏中点击savedFilter边上的加号,会弹出一个Logcat Message Filter Settings界面,输入过滤器名称,要过滤的条件,保存即可。

④ 在Android开发中,Logcat是什么

最后介绍一下Android的Log工具LogCat。
首先在Eclipse中选择Windows > Show View > Other... > Android > LogCat,确定后会出现LogCat显示框,用户添加的Log将会在这里显示。使用时直接在代码中插入“Log.i("info","this is a log");”,那么在执行到该语句时,LogCat显示框中将出现“this is a log”。

在Eclipse中安装ADT和android sdk包之后,运行以开发的android程序时,在LogCat窗口中会显示出一系列的信息,这些信息是每一个程序通过Dalvik虚拟机所传出的实时信息,可以方便我们对程序的了解。
在log窗口中,每条信息都包含五个部分,Time,标题空白,pid,tag和Message。
1、Time
表示执行的时间,这个信息对于学习生命周期,分析程序运行的先后顺序特别有用。
2、标题空白的列

表示的是信息的种类,分为V,D,I,W,E五种。
V:verbose,显示全部信息
D:Debug,显示调试信息
I:Info,显示一般信息
W:Warming,显示警告信息
E:Error,显示错误信息
可以通过点击LogCat上面的用圆圈括起来的V,D,I,W,E来改变显示的范围。比如选择了W,那就只有警告信息和错误信息可以显示出来了。
3、pid
表示程序运行时的进程号
4、tag
标签,通常表示系统中的一些进程名,比如我们运行helloworld程序的话,就会看到activitymanager在运行。
5、Message
表示进程运行时的一些具体信息,比如我们运行helloworld程序的话,就会看到starting activity...helloWorld的字样
可以输出LogCat的信息到文本文件中,以方便分析。在下拉框中选择输出选择的信息就可以了。
下面是输出到文件中的启动helloWorld程序时的一条信息的例子,分别用5个下划线标出了上面介绍的内容:
05-20 15:46:10.129: INFO/ActivityManager(60): Starting activity: Intent { act=android.intent.action.MAIN cat=
[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.android.helloworld/.HelloWorld }
6、Filter的使用
可以在Filter中输入筛选信息,使LogCat中只现实我们需要分析的信息。比如我们只想看和HelloWorld相关的信息,就可以在
Filter中输入HelloWorld,这样只有Message 中包含HelloWorld的内容才会显示出来。
7、LogCat中信息不能显示
上面说了这么多关于logCat的使用,可能LogCat中根本就什么信息都没有显示!没关系,只要在Eclipse中选择window-
>show view->other->android->devices就可以 了。
8、在LogCat中输出程序的运行信息

a、在程序中导入相应的包:import android.util.Log;
b、在需要输出信息的函数中增加相关的调试代码:Log.i("hi world","oncreate");
方法i是Log类的静态方法,可以直接使用,我们看着各类的定义可以看到,它提供了多种输出方法,分别对应我们上面提到的V,D,I,W,E。用哪个方法就决定了输出的类型,这里用i,表示输出的是information。
这个方法中的第一个参数就是要显示在Tag那一栏的内容,把这条语句加到OnCreate方法中,执行时LogCat中就会显示如下的信息: 05-22 21:58:22.894 I 3910 hi world onCreate
9、创建新的Filter

有时候只想看我们程序中用Log类的相关方法输出的各种信息,这时就可以考虑新建一个过滤器。点击LogCat的右上角的“+”号,可以创建一个新的过滤器。比如我们在by Log Tag的选项中填入上面程序输出的"hi world"这个tag。这样再运行时在我们新创建的Filter中就只显示hi world这个tag标记出来的信息了。

Android开发中的logcat工具使用详解--------

logcat是Android中一个命令行工具,可以用于得到程序的log信息。
logcat使用方法如下所示:
logcat [options] [filterspecs]
logcat的选项包括:
-s 设置过滤器,例如指定 '*:s'
-f <filename> 输出到文件,默认情况是标准输出。
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> 设置log的打印格式, <format> 是下面的一种:
brief process tag thread raw time threadtime long

-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b <buffer> 请求不同的环形缓冲区 ('main' (默认), 'radio', 'events')
-B 输出log到二进制中。

过滤器的格式是一个这样的串:
<tag>[:priority]

其中 <tag> 表示log的component, tag (或者使用 * 表示所有) , priority 如下所示:

V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent

事实上logcat的功能 是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:
Log.v() -------------------- VERBOSE
Log.d() -------------------- DEBUG
Log.i() -------------------- INFO
Log.w() -------------------- WARN
Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。

对于JAVA类,可以声明一个字符串常量TAG,Logcat可以根据他来区分不同的log,例如在计算器(Calculator)的类中,定义如下所示:

public class Calculator extends Activity {
/* ...... */
private static final String LOG_TAG = "Calculator";
private static final boolean DEBUG = false;
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
/* ...... */
由此,所有在Calculator中使用的log,均以"Calculator"为开头。

例如使用方法如下所示:
# logcat &
< 得到一个log片段 >
W/KeyCharacterMap( 130): No keyboard for id 0
W/KeyCharacterMap( 130): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
I/ActivityManager( 52): Displayed activity com.android.contacts/.: 983 ms
I/ARMAsse mbler( 52): generated scanline__00000077:03545404_00000A04_00000000 [ 29 ipp] (51 ins) at [0x25c978:0x25ca44] in 1764174 ns
I/ARMAssembler( 52): generated scanline__00000077:03515104_00000001_00000000 [ 46 ipp] (65 ins) at [0x25d1c8:0x25d2cc] in 776789 ns
D / dalvikvm ( 130 ): GC freed 834 objects / 81760 bytes in 63ms
D/dalvikvm( 52): GC freed 10588 objects / 425776 bytes in 94ms

其中W/I/D 表示log的级别,“dalvikvm ”“ARMAssembler ”等是不同组件(component)的名称,后面括号里面的数字 表示了发出log的进程号。

使用技巧:
1.使用logcat &在后台运行
2.使用-d得到所有log
3.使用-f或者重定向(>和>>)输出到文件
4.使用-s设置过滤器,得到想要的log。

当然,最重要的还是在程序中加入恰当的log.

许多初次接触Android开发的朋友会遇到调试的问题,如何能够根据错误提示迅速的找到“出事地点呢”?在Eclipse+ADT的开发环境中没有好的直接跟踪对象内容的方法,通过使用android.util.Log类可以帮助你自己查找错误和打印系统日志消息。它是一个进行日志输出的API,我们在Android 程序中可以随时为某一个对象插入一个Log,然后在DDMS中观察Logcat的输出是否正常。
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。当我们在DDMS进行调试时他们的区别并不大,只是显示的颜色不同,但通过Logcat的过滤器我们可以过滤显示某类的,一般对于执行错误的断点,下在Log.e比较合适。但是Android开发网根据规范建议VERBOSE,DEBUG信息应当只存在于开发中,最终版本只可以包含 INFO, WARN,ERROR这三种日志信息。在实际使用中,我们最好为每一个类声明一个字符串常量TAG,这样在Logcat中我们可以容易区分不同的类的日志。例如:
private static final String TAG = "MyActivity";
接下来我们就可以用Log随心所欲的观察Android代码中的每个细节:Log.e(TAG, "android123.com.cn"); 但是要记住这个Log类的参数都是String类型的。

⑤ 如何在eclipse里添加logcat,以及添加过滤器

logcat里信息繁多,用过滤器可以方便快捷的找到我们要查找的信息。

我们可以在打开Eclipse之后,选择Window–>ShowView->Other菜单,然后在Android->LogCat中选择LogCat,这样LogCat便会在Eclipse的下方区域出现了。

其中,在LogCat的右上方的5个字母分别表示了5种不同类型的日志信息(并以不同颜色加以区分,级别越高,颜色越突出):

1.[V]:详细(Verbose)信息,输出颜色为黑色

2.[D]:调试(Debug)信息,输出颜色是蓝色

3.[I]:通告(Info)信息,输出颜色为绿色

4.[W]:警告(Warn)信息,输出颜色为橙色

5.[E]:错误(Error)信息,输出颜色为红色,这里错误信息的级别最高,其次是警告信息,然后是通知信息和调试信息,级别最低的是详细信息。

程序运行后,LogCat捕获得到应用程序发送的日志信息,显示结果如下图:


注:如果不能正常显示,最好重启一下eclipse。

⑥ Servlet 3.0 之@WebFilter怎么控制多个filter的执行顺序

之前我们控制多个filter的执行顺序是通过web.xml中控制filter的位置来控制的,放在上面的会比放在下面的先执行,如下“用户登录检查过滤器”会比“接口日志过滤器”先执行

<!--用户登录检测过滤器-->
<filter>
<filter-name>UserLoginFilter</filter-name>
<filter-class>net.tfgzs.demo.filter.UserLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UserLoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--接口日志过滤器-->
<filter>
<filter-name>ApiLog</filter-name>
<filter-class>net.tfgzs.demo.filter.ApiLog</filter-class>
</filter>
<filter-mapping>
<filter-name>ApiLog</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

但是当我们使用@WebFilter注解的时候发现注解里面没有提供可以控制执行顺序的参数

通过实践发现如果想要控制filer的执行顺序可以通过控制filter的文件名来控制

比如:

UserLoginFilter.java 和 ApiLog.java 这两个文件里面分别是“用户登录检查过滤器”和“接口日志过滤器”,因为这两个文件的
首字母A排U之前

,导致每次执行的时候都是先执行“接口日志过滤器”再执行“用户登录检查过滤器”,所以我们现在修改两个文件的名称分别为

Filter0_UserLogin.java

Filter1_ApiLog.java

这样就能先执行“用户登录检查过滤器”再执行“接口日志过滤器”

⑦ 你好,能问一下,用log4j输出日志的话。怎么配置成过滤器呢,也就是只要登录的我就输出所有的action的日志

在action的配置中配置拦截器,在拦截器里获取参数记录日志

⑧ 如何获取 android 的系统日志 logcat

读取日志需要的权限
<uses-permission android:name="android.permission.READ_LOGS"/>

主要代码
package mt.fzgh;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class MyLog
{
public static class MLog //静态类
{
public static void getLog()
{
System.out.println("--------func start--------"); // 方法启动
try
{
ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志
cmdLine.add("logcat");
cmdLine.add("-d");

ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志
clearLog.add("logcat");
clearLog.add("-c");

Process process=Runtime.getRuntime().exec(cmdLine.toArray(new String[cmdLine.size()])); //捕获日志
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //将捕获内容转换为BufferedReader

// Runtime.runFinalizersOnExit(true);
String str=null;
while((str=bufferedReader.readLine())!=null) //开始读取日志,每次读取一行
{
Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()])); //清理日志....这里至关重要,不清理的话,任何操作都将产生新的日志,代码进入死循环,直到bufferreader满
System.out.println(str); //输出,在logcat中查看效果,也可以是其他操作,比如发送给服务器..
}
if(str==null)
{
System.out.println("-- is null --");
}
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("--------func end--------");
}
}
}

这里比较令人纠结的一点就是日志的清理 logcat -c 如果不加入 清理 在buffer满为止,代码自身能够迭代6~7次....

附带一份logcat的 命令...不过好像 过滤器 指令有问题....慎用
选项 说明
-s 默认设置过滤器
- f 文件 输出到日志文件
-c 清除日志
-d 获取日志
-g 获取日志的大小
- v 格式 设置日志(见下面的格式打印格式)

- v 格式 例
brief W/tag ( 876): message
process W( 876) message (tag)
tag W/tag : message
thread W( 876:0x37c) message
raw message
time 09-08 05:40:26.729 W/tag ( 876): message
threadtime 09-08 05:40:26.729 876 892 W tag : message
long [09-08 05:40:26.729 876:0x37c W/tag ] message

⑨ catlog日志工具怎么使用

首先讨论一下为什么使用Logcat而不使用Java中的System.out.println()方法来输出日志。
System.out.println()方法的优点就是使用很方便,只需要在Eclipse中输入syso,接着按下代码提示,这个方法就自动出来了。但是相比较Logcat,它的缺点也很明显,比如打印时间无法确定、打印内容无法控制、不能添加过滤器、日志级别没有区分等等。

今天重点讨论下log的级别区分,Android中的日志工具类Logcat(android.util.Log)提供了5种方法(对应5种级别),当然如有需要也可以进行重载,这里暂时不谈。先看这五种方法:
1.Log.v()
对应级别verbos,属于Android日志里面级别最低的一种。从名字可以看出,这中方法用于打印哪些琐碎的的、意义最小的日志信息(显然数量较多)。
2.Log.d()
对应级别debug,比verbose高一级。这种方法用于打印调试的相关信息,对调试程序和分析问题用很大帮助。
3.Log.i()
对应级别info,又比debug高一级。该方法用于打印一些比较重要的信息,这些信息有助于帮助分析用户行为。
4.Log.w()
对应级别warn,比info高一级。这个方法用于打印一些警告信息,提示程序在某些部分可能存在潜在的风险,例如程序流会堵死之类。最好将这些部分修复一下。
5.Log.e()
对应级别error,是级别最高的日志信息。这个方法用于打印程序中的错误信息,例如程序进入了catch语句当中(异常处理机制)。当出现E级别的日志信息的时候表示程序出现了很严重的错误,需要尽快修复。

细想一下,Log和Logcat配合之下会有怎样的效果,今天先说下给Logcat添加过滤器的方法。
正常刚打开Eclipse会有一个All message过滤器(其实就是没过滤),他会把所有的五种日志全部打印出来。另外当我们创建项目的时候,会产生一个com.xxx.xxx的过滤器,这是运行项目时自动创建的,点击这个过滤器就能看到这个项目的日志信息。这里我们尝试添加一个自定义的过滤器。


当前我们选择的级别是verbose,是前面讲过的五种级别中最低的等级,也就是说无论我们用Log.v()、Log.d()、Log.i()、Log.w()、log.e()当中的哪一种方法,这条日志都会被打印出来。以此类推,如果我们选择的控制级别是debug的话,那么使用Log.v是无法打印出这条语句的,只有用debug及以上的方法才可以。换个角度说,如果我们将当前的等级控制选择在info、warn或者error,那么上面的语句也不会打印出来,因为代码中我们使用的打印方法是Log.d()。通过日志控制可以很快的定位到我们需要的信息,有效地提高解决问题的效率,确实比System.out.println()好用多了。

⑩ 请教个问题:日志文件的过滤器怎么使用啊

过滤... 按钮可选择要包括在日志中的特定类型的记录。日志有五个级别:严重警告 –最小的详细版日志记录级别权,其中包含重要系统错误(如病毒防护未能启动,个人防火墙不起作用等)错误 – 诸如“下载文件时出错”之类的错误和严重错误警报 – 警告消息和错误信息性记录 - 包括成功更新、警报和错误在内的信息性消息诊断记录 - 最详细的级别,包括程序微调需要的信息和上述所有记录

阅读全文

与adt中的日志过滤器如何设置相关的资料

热点内容
3m车载空气净化器有什么好处 浏览:867
浙江农村生活污水处理设备怎么样 浏览:898
简述工业废水的主要特征 浏览:42
花洒除垢 浏览:493
饮水机响声大是什么故障 浏览:197
生活中用什么化学物质净水 浏览:943
热水器除垢剂对加热棒有伤害吗 浏览:861
超滤膜直饮机啥意思 浏览:90
净化器灯一直闪是怎么回事 浏览:163
净水器提示更换滤芯什么原理 浏览:186
环境保护法铸造厂废水排放 浏览:791
污水厂操作工安全生产 浏览:452
废水检测装置 浏览:436
空气滤芯制作什么东西 浏览:599
树脂标号什么意思 浏览:600
甜米酒发酵好要不要蒸馏 浏览:622
安利车载空气净化器怎么样 浏览:943
宝宝不吃奶头用吸奶器吸会回奶么 浏览:867
垃圾填埋厂的反渗透装置 浏览:12
净水器使用前先要放掉多少水 浏览:160