wimfilter.sys,如何查询电脑上的文件是否有被拷贝记录
wimfilter.sys,如何查询电脑上的文件是否有被拷贝记录?
在Windows操作系统中,如果您想查看最近是否有人拷贝了某个文件,可以使用Windows事件查看器来检查File System日志。文件的拷贝和移动等操作都会被记录在File System日志中。
以下是查询电脑上的文件是否有被拷贝记录的步骤:
1. 打开“事件查看器”:按下Windows键+R,在运行框内输入"eventvwr.msc"并点击“确定”即可打开事件查看器。
2. 转到File System日志:双击左侧面板的“Windows 日志”,然后单击右键并选择“Filter current log”。
3. 设置过滤选项: 选中“Event sources”勾选框中的“Microsoft Windows security auditing.”,并在“关键字”框中键入一个或多个适用于要查找的操作或过程的关键字
4. 查找相关事件: 点击“确定”按钮并等待日志加载完毕。然后浏览列表以查找与文件拷贝相关的事件ID。
请注意,这种方式只能帮助您确认是否有人复制了特定的文件,并且只能查看最近一段时间内的记录。如果您需要更详细的文件访问控制和监控功能,请考虑安装第三方软件,如Microsoft SysInternals Suite等。
ndisproxyfiltersys是什么?
错误:ndisproxyfilter.sys 相当于盗版,完美升级成功,正版出现问题...............不建议升级,兼容不好。
现在学Python应该学2还是3?
首先感谢邀请,学Python2或者3,先了解一下二者之间的区别。
1.性能
Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可
以取得很好的优化结果。
Py3.1性能比Py2.5慢15%,还有很大的提升空间。
2.编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
>>> 中国 = 'china'
>>>print(中国)
china
3. 语法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)关键词加入as 和with,还有True,False,None
4)整型除法返回浮点数,要得到整型结果,请使用//
5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量
6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
例如:
2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x, # 使用逗号结尾禁止换行
3.X: print(x, end=" ") # 使用空格代替换行
2.X: print # 输出新行
3.X: print() # 输出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)
2.X: print (x, y) # 输出repr((x, y))
3.X: print((x, y)) # 不同于print(x, y)!
7)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值
8)输入函数改变了,删除了raw_input,用input代替:
2.X:guess = int(raw_input('Enter an integer : ')) # 读取键盘输入的方法
3.X:guess = int(input('Enter an integer : '))
9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了
10)新式的8进制字变量,相应地修改了oct()函数。
2.X的方式如下:
>>> 0666
438
>>> oct(438)
'0666'
3.X这样:
>>> 0666
SyntaxError: invalid token (<pyshell#63>, line 1)
>>> 0o666
438
>>> oct(438)
'0o666'
11)增加了 2进制字面量和bin()函数
>>> bin(438)
'0b110110110'
>>> _438 = '0b110110110'
>>> _438
'0b110110110'
12)扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list
对象和seq是可迭代的。
13)新的super(),可以不再给super()传参数,
>>> class C(object):
def __init__(self, a):
print('C', a)
>>> class D(C):
def __init(self, a):
super().__init__(a) # 无参数调用super()
>>> D(8)
C 8
<__main__.D object at 0x00D7ED90>
14)新的metaclass语法:
class Foo(*bases, **kwds):
pass
15)支持class decorator。用法与函数decorator一样:
>>> def foo(cls_a):
def print_func(self):
print('Hello, world!')
cls_a.print = print_func
return cls_a
>>> @foo
class C(object):
pass
>>> C().print()
Hello, world!
class decorator可以用来玩玩狸猫换太子的大把戏。更多请参阅PEP 3129
4. 字符串和字节串
1)现在字符串只有str一种类型,但它跟2.x版本的unicode几乎一样。
2)关于字节串,请参阅“数据类型”的第2条目
5.数据类型
1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long
2)新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法如下:
>>> b = b'china'
>>> type(b)
<type 'bytes'>
str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。
>>> s = b.decode()
>>> s
'china'
>>> b1 = s.encode()
>>> b1
b'china'
3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有
dict.has_key(),用 in替代它吧
6.面向对象
1)引入抽象基类(Abstraact Base Classes,ABCs)。
2)容器类和迭代器类被ABCs化,所以cellections模块里的类型比Py2.5多了很多。
>>> import collections
>>> print('\n'.join(dir(collections)))
Callable
Container
Hashable
ItemsView
Iterable
Iterator
KeysView
Mapping
MappingView
MutableMapping
MutableSequence
MutableSet
NamedTuple
Sequence
Set
Sized
ValuesView
__all__
__builtins__
__doc__
__file__
__name__
_abcoll
_itemgetter
_sys
defaultdict
deque
另外,数值类型也被ABCs化。关于这两点,请参阅 PEP 3119和PEP 3141。
3)迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法
4)增加了@abstractmethod和 @abstractproperty两个 decorator,编写抽象方法(属性)更加方便。
7.异常
1)所以异常都从 BaseException继承,并删除了StardardError
2)去除了异常类的序列行为和.message属性
3)用 raise Exception(args)代替 raise Exception, args语法
4)捕获异常的语法改变,引入了as关键字来标识异常实例,在Py2.5中:
>>> try:
... raise NotImplementedError('Error')
... except NotImplementedError, error:
... print error.message
...
Error
在Py3.0中:
>>> try:
raise NotImplementedError('Error')
except NotImplementedError as error: #注意这个 as
print(str(error))
Error
5)异常链,因为__context__在3.0a1版本中没有实现
8.模块变动
1)移除了cPickle模块,可以使用pickle模块代替。最终我们将会有一个透明高效的模块。
2)移除了imageop模块
3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2,
rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模块
4)移除了bsddb模块(单独发布,可以从http://www.jcea.es/programacion/pybsddb.htm获取)
5)移除了new模块
6)os.tmpnam()和os.tmpfile()函数被移动到tmpfile模块下
7)tokenize模块现在使用bytes工作。主要的入口点不再是generate_tokens,而是 tokenize.tokenize()
9.其它
1)xrange() 改名为range(),要想使用range()获得一个list,必须显式调用:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2)bytes对象不能hash,也不支持 b.lower()、b.strip()和b.split()方法,但对于后两者可以使用 b.strip(b’
\n\t\r \f’)和b.split(b’ ‘)来达到相同目的
3)zip()、map()和filter()都返回迭代器。而apply()、 callable()、coerce()、 execfile()、reduce()和reload
()函数都被去除了
现在可以使用hasattr()来替换 callable(). hasattr()的语法如:hasattr(string, '__name__')
4)string.letters和相关的.lowercase和.uppercase被去除,请改用string.ascii_letters 等
5)如果x < y的不能比较,抛出TypeError异常。2.x版本是返回伪随机布尔值的
6)__getslice__系列成员被废弃。a[i:j]根据上下文转换为a.__getitem__(slice(I, j))或 __setitem__和
__delitem__调用
7)file类被废弃,在Py2.5中:
>>> file
<type 'file'>
在Py3.X中:
>>> file
Traceback (most recent call last):
File "<pyshell#120>", line 1, in <module>
file
NameError: name 'file' is not defined
个人认为学习Python3比较好一些,有部分库Python3不支持那都是常年不使用的库而已,注意一定要确定方向是数据分析、爬虫还是Web等等。
Linux怎么使用ss命令查看系统的socket状态?
ss是Socketstatistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat/proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费生命,而用ss才是节省时间。天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比netstat要快。) 1.命令格式: ss[参数] ss[参数][过滤] ??2.命令功能: ss(SocketStatistics的缩写)命令可以用来获取socket统计信息,此命令输出的结果类似于netstat输出的内容,但它能显示更多更详细的TCP连接状态的信息,且比netstat更快速高效。它使用了TCP协议栈中tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得ss命令快捷高效。在没有tcp_diag,ss也可以正常运行。 ? 3.命令参数: -h,--help帮助信息 -V,--version程序版本信息 -n,--numeric不解析服务名称 -r,--resolve解析主机名 -a,--all显示所有套接字(sockets) -l,--listening显示监听状态的套接字(sockets) -o,--options显示计时器信息 -e,--extended显示详细的套接字(sockets)信息 -m,--memory显示套接字(socket)的内存使用情况 -p,--processes显示使用套接字(socket)的进程 -i,--info显示TCP内部信息 -s,--summary显示套接字(socket)使用概况 -4,--ipv4仅显示IPv4的套接字(sockets) -6,--ipv6仅显示IPv6的套接字(sockets) -0,--packet显示PACKET套接字(socket) -t,--tcp仅显示TCP套接字(sockets) -u,--udp仅显示UCP套接字(sockets) -d,--dccp仅显示DCCP套接字(sockets) -w,--raw仅显示RAW套接字(sockets) -x,--unix仅显示Unix套接字(sockets) -f,--family=FAMILY显示FAMILY类型的套接字(sockets),FAMILY可选,支持unix,inet,inet6,link,netlink -A,--query=QUERY,--socket=QUERY QUERY:={all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY] -D,--diag=FILE将原始TCP套接字(sockets)信息转储到文件 -F,--filter=FILE从文件中都去过滤器信息 FILTER:=[stateTCP-STATE][EXPRESSION] 4.使用实例: 实例1:显示TCP连接 命令:ss-t-a 输出: 代码如下: [root@localhost~]#ss-t-a StateRecv-QSend-QLocalAddress:PortPeerAddress:Port LISTEN00127.0.0.1:smux*:* LISTEN00*:3690*:* LISTEN00*:ssh*:* ESTAB00192.168.120.204:ssh10.2.0.68:49368 [root@localhost~]# 实例2:显示Sockets摘要 命令:ss-s 输出:? 代码如下: [root@localhost~]#ss-s Total:34(kernel48) TCP:4(estab1,closed0,orphaned0,synrecv0,timewait0/0),ports3《/p》《p》TransportTotalIPIPv6 *48-- RAW000 UDP550 TCP440 INET990 FRAG000 [root@localhost~]# 说明:列出当前的established,closed,orphanedandwaitingTCPsockets 实例3:列出所有打开的网络连接端口 命令:ss-l 输出: 代码如下: [root@localhost~]#ss-l Recv-QSend-QLocalAddress:PortPeerAddress:Port 00127.0.0.1:smux*:* 00*:3690*:* 00*:ssh*:* [root@localhost~]# 实例4:查看进程使用的socket 命令:ss-pl 输出: 代码如下: [root@localhost~]#ss-pl Recv-QSend-QLocalAddress:PortPeerAddress:Port 00127.0.0.1:smux*:*users:((“snmpd”,2716,8)) 00*:3690*:*users:((“svnserve”,3590,3)) 00*:ssh*:*users:((“sshd”,2735,3)) [root@localhost~]# 实例5:找出打开套接字/端口应用程序 命令:ss-lp|grep3306 输出: 代码如下: [root@localhost~]#ss-lp|grep1935 00*:1935*:*users:((“fmsedge”,2913,18)) 00127.0.0.1:19350*:*users:((“fmsedge”,2913,17)) [root@localhost~]#ss-lp|grep3306 00*:3306*:*users:((“mysqld”,2871,10)) [root@localhost~]# 实例6:显示所有UDPSockets 命令:ss-u-a 输出: 代码如下: [root@localhost~]#ss-u-a StateRecv-QSend-QLocalAddress:PortPeerAddress:Port UNCONN00127.0.0.1:syslog*:* UNCONN00*:snmp*:* ESTAB00192.168.120.203:3964110.58.119.119:domain [root@localhost~]# 实例7:显示所有状态为established的SMTP连接 命令:ss-ostateestablished‘(dport=:smtporsport=:smtp)’ 输出: 代码如下: [root@localhost~]#ss-ostateestablished‘(dport=:smtporsport=:smtp)’ Recv-QSend-QLocalAddress:PortPeerAddress:Port [root@localhost~]# 实例8:显示所有状态为Established的HTTP连接 命令:ss-ostateestablished‘(dport=:httporsport=:http)’ 输出: 代码如下: [root@localhost~]#ss-ostateestablished‘(dport=:httporsport=:http)’ Recv-QSend-QLocalAddress:PortPeerAddress:Port 0075.126.153.214:2164192.168.10.42:http [root@localhost~]#? 实例9:列举出处于FIN-WAIT-1状态的源端口为80或者443,目标网络为193.233.7/24所有tcp套接字 命令:ss-ostatefin-wait-1‘(sport=:httporsport=:https)’dst193.233.7/24 实例10:用TCP状态过滤Sockets: 命令: 代码如下: ss-4stateFILTER-NAME-HERE ss-6stateFILTER-NAME-HERE 输出: 代码如下: [root@localhost~]#ss-4stateclosing Recv-QSend-QLocalAddress:PortPeerAddress:Port 11109475.126.153.214:http192.168.10.42:4669 说明: FILTER-NAME-HERE可以代表以下任何一个: 代码如下: established syn-sent syn-recv fin-wait-1 fin-wait-2 time-wait closed close-wait last-ack listen closing all:所有以上状态 connected:除了listenandclosed的所有状态 synchronized:所有已连接的状态除了syn-sent bucket:显示状态为maintainedasminisockets,如:time-wait和syn-recv. big:和bucket相反。 实例11:匹配远程地址和端口号 命令: 代码如下: ssdstADDRESS_PATTERN ssdst192.168.1.5 ssdst192.168.119.113:http ssdst192.168.119.113:smtp ssdst192.168.119.113:443 输出: 代码如下: [root@localhost~]#ssdst192.168.119.113 StateRecv-QSend-QLocalAddress:PortPeerAddress:Port ESTAB00192.168.119.103:16014192.168.119.113:20229 ESTAB00192.168.119.103:16014192.168.119.113:61056 ESTAB00192.168.119.103:16014192.168.119.113:61623 ESTAB00192.168.119.103:16014192.168.119.113:60924 ESTAB00192.168.119.103:16050192.168.119.113:43701 ESTAB00192.168.119.103:16073192.168.119.113:32930 ESTAB00192.168.119.103:16073192.168.119.113:49318 ESTAB00192.168.119.103:16014192.168.119.113:3844 [root@localhost~]#ssdst192.168.119.113:http StateRecv-QSend-QLocalAddress:PortPeerAddress:Port [root@localhost~]#ssdst192.168.119.113:3844 StateRecv-QSend-QLocalAddress:PortPeerAddress:Port ESTAB00192.168.119.103:16014192.168.119.113:3844 [root@localhost~]# 实例12:匹配本地地址和端口号 命令: 代码如下: sssrcADDRESS_PATTERN sssrc192.168.119.103 sssrc192.168.119.103:http sssrc192.168.119.103:80 sssrc192.168.119.103:smtp sssrc192.168.119.103:25 输出: 代码如下: [root@localhost~]#sssrc192.168.119.103:16021 StateRecv-QSend-QLocalAddress:PortPeerAddress:Port ESTAB00192.168.119.103:16021192.168.119.201:63054 ESTAB00192.168.119.103:16021192.168.119.201:62894 ESTAB00192.168.119.103:16021192.168.119.201:63055 ESTAB00192.168.119.103:16021192.168.119.201:2274 ESTAB00192.168.119.103:16021192.168.119.201:44784 ESTAB00192.168.119.103:16021192.168.119.201:7233 ESTAB00192.168.119.103:16021192.168.119.103:58660 ESTAB00192.168.119.103:16021192.168.119.201:44822 ESTAB00192.168.119.103:1602110.2.1.206:56737 ESTAB00192.168.119.103:1602110.2.1.206:57487 ESTAB00192.168.119.103:1602110.2.1.206:56736 ESTAB00192.168.119.103:1602110.2.1.206:64652 ESTAB00192.168.119.103:1602110.2.1.206:56586 ESTAB00192.168.119.103:1602110.2.1.206:64653 ESTAB00192.168.119.103:1602110.2.1.206:56587 [root@localhost~]# 实例13:将本地或者远程端口和一个数比较 命令: 代码如下: ssdportOPPORT sssportOPPORT 输出: 代码如下: [root@localhost~]#sssport=:http [root@localhost~]#ssdport=:http [root@localhost~]#ssdport\》:1024 [root@localhost~]#sssport\》:1024 [root@localhost~]#sssport\《:32000 [root@localhost~]#sssporteq:22 [root@localhost~]#ssdport!=:22 [root@localhost~]#ssstateconnectedsport=:http [root@localhost~]#ss\(sport=:httporsport=:https\) [root@localhost~]#ss-ostatefin-wait-1\(sport=:httporsport=:https\)dst192.168.1/24 说明: ssdportOPPORT远程端口和一个数比较;sssportOPPORT本地端口和一个数比较。 OP可以代表以下任意一个: 《=orle:小于或等于端口号 》=orge:大于或等于端口号 ==oreq:等于端口号 !=orne:不等于端口号 《orgt:小于端口号 》orlt:大于端口号 实例14:ss和netstat效率对比 命令: 代码如下: timenetstat-at timess 输出: 代码如下: [root@localhost~]#timess real0m0.739s user0m0.019s sys0m0.013s [root@localhost~]# [root@localhost~]#timenetstat-at real2m45.907s user0m0.063s sys0m0.067s [root@localhost~]# 说明: 用time命令分别获取通过netstat和ss命令获取程序和概要占用资源所使用的时间。在服务器连接数比较多的时候,netstat的效率完全没法和ss比。
is怎么查看log日志?
查看方法:
一、在 Java 与 C 语言中输出日志:
1) Java 代码在程序中输出日志, 使用 android.util.Log 类的以下 5 个方法:
Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。
分对应 Verbose、Debug、INFO、Warn、Error 的首字母。
例如:Log.i( "类::函数名", "日期_时间_源码文件名_行号_日志信息内容" );
2) C 代码在程序中输出日志,使用 log 的 API 函数:
__android_log_write( 日志类型宏,日志标签字符串,日志令牌内容字符串 );
需要:1. Android.mk 中添加 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
2. *.c 中添加 #include <android/log.h>
3. 日志类型宏有:
复制代码 代码如下:
// Android log priority values, in ascending priority order.
typedef enum android_LogPriority {
ANDROID_LOG_UNKNOWN = 0,
// only for SetMinPriority()
ANDROID_LOG_DEFAULT,
ANDROID_LOG_VERBOSE,
ANDROID_LOG_DEBUG,
ANDROID_LOG_INFO,
ANDROID_LOG_WARN,
ANDROID_LOG_ERROR,
ANDROID_LOG_FATAL,
// only for SetMinPriority(); must be last
ANDROID_LOG_SILENT,
} android_LogPriority;
二、logcat 使用方法:
Usage: logcat [options] [filterspecs]
用法: logcat [选项] [过滤说明]
options include:
选项包含:
-s Set default filter to silent.
Like specifying filterspec '*:S'
设置默认过滤为无声的。
像指定过滤说明为 *:S ,见下面 过滤说明 部份详述
-f <filename> Log to file.
Default to stdout
输出日志到文件。
默认为 stdout
-r [<kbytes>] Rotate log every kbytes.
(16 if unspecified).
Requires -f
设置环形日志缓冲区的kbytes。
默认值为16。
需要和 -f 选项一起使用
-n <count> Sets max number of rotated logs to <count>, default 4
设置环形日志缓冲区的最大数目,默认值是4,需要和 -r 选项一起使用
-v <format> Sets the log print format, where <format> is one of:
设置 log 的打印格式, 格式有如下主要7种:(不能组合使用)
brief
process
tag
thread
raw
time
threadtime
long
-c clear (flush) the entire log and exit
清除所有 log 并退出
-d dump the log and then exit (don't block)
得到所有log并退出且不阻塞
-t <count> print only the most recent <count> lines (implies -d)
仅打印最近的由参数 count 指出的行数(必然包含 -d)
-g get the size of the log's ring buffer and exit
得到环形缓冲区的大小并退出
-b <buffer> Request alternate ring buffer, 'main', 'system', 'radio' or 'events'.
Multiple -b parameters are allowed and the results are interleaved.
The default is -b main -b system.
请求供替换的环形缓冲区,如:main,system,radio,events。
多个 -b 参数是被允许,并且结果是交错输出的。
-b main -b system 是默认的。
-B output the log in binary
输出 log 到二进制文件中。
filterspecs are a series of <tag>[:priority]
过滤说明是一系列 <tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
tag 是 eclipse 中 logcat 图形界面中 Tag 的内容(或者有 * 表示全部),它之后的冒号(:)后面跟优先级:
日志类型标识符(优先级由低到高排列):
1. V — Verbose 详细的 <- 最低优先权
2. D — Debug 调试
3. I — Info 消息
4. W — Warn 警告
5. E — Error 错误
6. F — Fatal 致命的
7. S — Silent 无声的 <- 最高优先权
'*' means '*:d' and <tag> by itself means <tag>:v
* 意味着 *:d 且 单孤地 tag 意味着 tag:V
If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
如果在命令行上没有详细说明,过滤规格即是 ANDROID_LOG_TAGS 结果集。
If no filterspec is found, filter defaults to '*:I'
如果没有过滤说明,过滤规格默认为 *:I
If not specified with -v, format is set from ANDROID_PRINTF_LOG or defaults to "brief"
如果没有 -v 指定格式,将是 ANDROID_PRINTF_LOG 或 brief 格式集。
1) 只输出指定 标签 和 类型 的日志
格式:
adb logcat <日志标签>:<日志类型标识符> <日志标签>:<日志类型标识符> ... *:S
注:1. 可以写多个 <日志标签>:<日志类型标识符> 之间用空格分隔;
2. 最后必须是 *:S ,表示其它的都不要显示出来
例如:
$ adb logcat dalvikvm:D Checkin:W *:S
注:adb logcat Checkin *:S =等同于=> adb logcat Checkin:V *:S
注:以上命令均没加 -v 来指出日志格式,即默认为: ANDROID_PRINTF_LOG 或 brief 格式集。
2) 输出指定 标签 和 类型 的带有格式的日志
注:以下测试日志内容为:test log format,
即 eclipse 中的 logcat 图形界面里的 Text 中的内容!
1. brief - 日志类型/日志标签(进程ID): 日志内容
例如:$ adb logcat -v brief Checkin *:S
I/Checkin(24713): test log format
2. process - 日志类型(进程ID) 日志内容 (日志标签)
例如:$ adb logcat -v process Checkin *:S
I(24713) test log format (Checkin)
3. tag - 日志类型/日志标签: 日志内容
例如:$ adb logcat -v tag Checkin *:S
I/Checkin: test log format
4. thread - 日志类型(进程ID:线程ID)
例如:$ adb logcat -v thread Checkin *:S
I(24713:0x6089) test log format
5. raw - 日志内容
例如:$ adb logcat -v raw Checkin *:S
test log format
6. time - 日期 调用时间 日志类型/日志标签(进程ID): 日志内容
例如:$ adb logcat -v time Checkin *:S
05-27 11:25:33.854 I/Checkin(24713): test log format
7. threadtime - 日期 调用时间 进程ID 线程ID 日志类型 日志标签: 日志内容
例如:$ adb logcat -v time Checkin *:S
05-27 11:25:33.854 24713 24713 I Checkin: test log format
注:只有此种格式时 线程ID 为十进制数。
8. long - [ 日期 调用时间 进程ID:线程ID 日志类型/日志标签 ] 转行显示 日志内容
例如:$ adb logcat -v long Checkin *:S
[ 05-27 11:25:33.854 24713:0x6089 I/Checkin ]
test log format