導航:首頁 > 凈水問答 > 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中的日誌過濾器如何設置相關的資料

熱點內容
廢水檢測裝置 瀏覽:436
空氣濾芯製作什麼東西 瀏覽:599
樹脂標號什麼意思 瀏覽:600
甜米酒發酵好要不要蒸餾 瀏覽:622
安利車載空氣凈化器怎麼樣 瀏覽:943
寶寶不吃奶頭用吸奶器吸會回奶么 瀏覽:867
垃圾填埋廠的反滲透裝置 瀏覽:12
凈水器使用前先要放掉多少水 瀏覽:160
水泵房上方有污水管 瀏覽:623
武昌凈水神器怎麼樣 瀏覽:22
生產空氣凈化器企業屬於什麼行業 瀏覽:65
開封污水處理廠項目中標 瀏覽:796
350w小型凈化器多少錢 瀏覽:693
宏森污水處理 瀏覽:68
污水提升器廠家推薦 瀏覽:444
沁園185e凈水機濾芯怎麼安裝 瀏覽:291
污水水解酸化池加什麼葯劑 瀏覽:565
自流平地面和環氧樹脂 瀏覽:801
本田思域拆機油濾芯用什麼扳手 瀏覽:286
找907乙烯基樹脂生產廠家 瀏覽:629