Android O版本自定义日志输出目录

Android原生系统默认情况下,log是不输出到文件的,这样对于只能用模拟器进行开发实验的人来说,不是很方便。

当然android默认不输出log到文件也是考虑到输入日志到文件会引起性能问题。

下面提供一种将日志定向到文件的方法

修改system/core/logcat/logcatd.rc文件,在文件的最后添加如何代码:

# define my log directory
service applogcat /system/bin/logcat -v threadtime -r 4096 -n 10 -f  /data/log/android_logs/applogcat_log
     class late_start
     user root.
     group system
     disabled
     writepid /dev/cpuset/system-background/tasks

这里定义了一个名为applogcat的服务,服务对应的可执行文件为/system/bin/logcat,后面的/data/log/android_logs/applogcat_log表示日志的输出文件路径

修改system/core/rootdir/init.rc文件,在on post-fs-data阶段的最后添加如下代码

注意,这里在创建data/log/android_logs目录时,分两步进行,因为在.rc文件里面不支持跨级创建文件(夹),因此这里先创建了log目录,然后才创建它的子目录android_logs。

最后,别忘了使用start命令,启动刚才创建的applogcat服务。

到这里,日志服务和目录已经创建好了。

此时,编译一下,重新手机发现只有目录,并没有对应的日志文件生成。

使用adb shell进行手机,dmesg查看一下kernel日志,发现SELinux权限报错。

此时,正确的方法应该是给/data/log/android_logs目录添加正确的SELinux权限,由于对SELinux部分内容并不了解,暂时不懂如何添加权限,于是直接从代码上把SELinux给关了。(不推荐这种方法,只是自己玩那无所谓)

从代码级别关闭SELinux的方法很简单,修改/system/core/init/init.cpp中的selinux_initialize(bool in_kernel_domain)方法即可,将其中的is_enforcing置为0即可。

当然,这并不是正确的方法,等后面学习了SELinux部分的内容后,再来更新正确的方法,先把这个方法记录下来。

原文地址:https://www.cnblogs.com/tsts/p/9311462.html

时间: 2024-11-12 23:05:32

Android O版本自定义日志输出目录的相关文章

JAVA中自定义日志输出到指定文件

虽然JAVA日志包提供的功能已经很方便,但是假如我们有新的需求如:将日志文件保存到我们希望的位置并在日志文件名中添加日期且保存指定时间内的日志文件:按照自己希望的格式输出日志内容.对于这些需求我们只要扩展java.util.logging.StreamHandler(Handler的子类),java.util.logging.Formatter创建自定义的处理器及格式化器即可以实现.下面是个例子,它分别创建了Handler及Formatter的子类,以便实现将日志文件保存到我们需要的位置,及在日

HAproxy增加日志记录功能和自定义日志输出内容、格式

一.增加haproxy日志记录功能 1.1 由于数据分析的需要,我们必须打开haproxy日志,记录相关信息. 在配置前,我们先来了解一下日志的level:local0-local7 16-23保留为本地使用 emerg 0 系统不可用     alert 1 必须马上采取行动的事件     crit 2 关键的事件     err 3 错误事件     warning 4 警告事件     notice 5 普通但重要的事件     info 6 有用的信息     debug 7 调试信息

Django 中使用 logging 配置 logger 自定义日志输出

在使用 django 开发过程中,默认的日志输出是不能满足我们去排查问题的,往往需要自定义的日志输出,帮助我们去排查程序BUG,定位问题原因. 在使用 django 的开发过程中,我使用的是 python 内置日志模块 logginglogging 的详细使用讲解我就不多说了,度娘一抓一大抓:我只记录下我在 django settings 中的 logger 配置.方便以后使用 以下在我在 settings 中定义的 logger:# Custom output log LOGGING = {'

iOS 自定义日志输出

在做iOS开发过程中,我们经常需要输出日志来查看某些数据是否打印出来,或者查看查个类是否被调用了. 系统默认的是NSLog(@"xxxx %d",1) ,但如果该APP要发布到商店,就要把这些日志全部都注释掉,要不是的话,要非常占内存. 当前的做法是,在.pch 中,定义一个宏: #ifdef DEBUG // 处于开发阶段 #define HWLog(...) NSLog(__VA_ARGS__) #else // 处于发布阶段 #define HWLog(...) #endif 调

django 开发之自定义日志器

需求 在我们的真实环境中当我们出现错误的时候我们要记录下来,便于我们分析差错. 关于日志的代码文件 1 # 自定义日志输出信息 2 LOGGING = { 3 'version': 1, 4 'disable_existing_loggers': True, 5 'formatters': { 6 'standard': { 7 'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s

Python之向日志输出中添加上下文信息

除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们来介绍以下几种实现方式: 通过向日志记录函数传递一个extra参数引入上下文信息 使用LoggerAdapters引入上下文信息 使用Filters引入上下文信息 一.通过向日志记录函数传递一个extra参数引入上下文信息 前面我们提到过,可以通过向日志记录函数传递一个extra参数来实现向日志输出

postgresql数据库配置csv格式日志输出

postgresql数据库配置csv格式日志输出 下面介绍postgresql数据库中关于csv格式日志(pg中一种比较详细的日志输出方式)的设置方法. 1.进入$PGDATA目录(pg的安装目录,根据具体情况名称有所区别)下找到配置文件postgresql.conf 2.开启csvlog输出功能: #开启csvlog输出功能(默认为off) logging_collector = on 注:修改完logging_collector后需要重启数据库(当然你也可以继续配置,在所有配置都完成后再重启

CMake 设置Target输出目录和后缀名

一. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin) 上面的语句能设置可执行文件的输出目录 在Win + VS环境下,会自动在你所设置的目录后面扩展一层 <CONFIG> 目录,所以最终生成的Debug版本程序会在 ${PROJECT_SOURCE_DIR}/../bin/Debug 目录下,Release版本程序会在 ${PROJECT_SOURCE_DIR}/../bin/Release 目录下. 在Linux + GCC环

【转】Python之向日志输出中添加上下文信息

[转]Python之向日志输出中添加上下文信息 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们来介绍以下几种实现方式: 通过向日志记录函数传递一个extra参数引入上下文信息 使用LoggerAdapters引入上下文信息 使用Filters引入上下文信息 一.通过向日志记录函数传递一个extra参数引入上下文信息 前面我们提到过,可以通过向日