Android开发:日志功能备忘

news/2024/10/8 21:56:41/文章来源:https://www.cnblogs.com/soaring27221/p/18453134

临时记一下吧,以后就直接复制粘贴这里面的好了。

实现一个日志记录程序的运行状态,并且带上时间信息,可以写一个类灵活调用。

MyLog.java

package com.example.networkaccessrestrictions;import static android.content.ContentValues.TAG;import android.content.Context;
import android.util.Log;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class MyLog {private static final String LOG_FILE_NAME = "service_log.txt";//写入日志的文件名private Context context;// 构造函数,接收 Contextpublic MyLog(Context context) {this.context = context;}public void writeLog(String message) {File logFile = new File(context.getFilesDir(), LOG_FILE_NAME); // 使用内部存储// 获取当前日期LocalDateTime currentDateTime = LocalDateTime.now();//注意这里用到的是currentDateTime,不是currentDate也不是currentDateTime// 定义日期格式DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 格式化当前日期String formattedDateTime = currentDateTime.format(formatter);// 输出格式化后的日期//System.out.println("当前日期: " + formattedDateTime);try (FileWriter fileWriter = new FileWriter(logFile, true); // 以追加模式打开文件PrintWriter printWriter = new PrintWriter(fileWriter)) {printWriter.println(formattedDateTime + ":" + message); // 写入时间戳和消息} catch (IOException e) {Log.e(TAG, "Error writing to log file", e);}}}

在其他代码里把活动写入日志时只需要

MyLog mylog=new MyLog(this);
mylog.writeLog("阿巴阿巴阿巴阿巴阿巴");

即可。

那么要上哪找这个日志文件呢?

直接去/data/data/your.package.name/files/ 目录下找日志就完事了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810218.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学年(2024-2025-3) 学号(20241424)《计算机基础与程序设计》第三周学习总结

学期(2024-2025-3) 学号(20241424) 《计算机基础与程序设计》第三周学习总结 作业信息 |这个作业属于([2024-2025-3-计算机基础与程序设计](https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03)| |-- |-- | |这个作业要求在(2024-2025-3计算机基础与程序设计第三周作…

mysql join语法解析

MySQL 支持以下 JOIN 语法用于 SELECT 语句和多表 DELETE 和 UPDATE 语句中的 table_references 部分: table_references: 查询中涉及的一个或多个表的引用,可以是简单表名或 JOIN 表达式的组合。 escaped_table_reference [, escaped_table_reference] ...escaped_table_ref…

Tableau修改行和列的颜色

1.修改颜色 1.1 在列上右键点击设置格式1.2 修改列和角2.逆时针、由里及外依次设置格式在直条上右键

论文《Learning Properties of Ordered and Disordered Materials from Multi-fidelity Data》中的代码实现

github地址:https://github.com/materialsvirtuallab/megnet/tree/master/multifidelity#issues介绍:当前的存储库利用了由同一作者开发的现有MEGNET软件包,并将MEGNET功能扩展到多保真数据集的建模。该存储库将共享公开发布的多保真带隙数据,并展示了运行多保真数据集的模…

Tableau双轴

1.添加度量到行2.添加分类到列3.拖动度量到左侧利润字段处放开

Tableau文本表、直条、散点图、折线图、

1文本表 两次双击选中两个维度2.直条 两次双击依次分别选中一个度量和维度3.散点图 两次双击选中两个度量4.折线图 两次双击依次分别选中一个日期和一个度量

Unity Shader-渲染队列,ZTest,ZWrite,Early-Z

本文介绍了Unity中的渲染队列,包括不透明和半透明物体的渲染顺序,以及如何自定义渲染队列。深度测试(ZTest)和深度写入(ZWrite)的概念被详细解释,同时探讨了Early-Z技术在优化渲染效率中的作用。此外,还提到了Alpha Test在移动设备上的性能问题。 摘要由CSDN通过智能技…

电力系统的负荷损失和潮流计算matlab仿真,对比最高度数,最高介数以及最高关键度等节点攻击

1.课题概述节点攻击是指针对电力系统中某个或多个节点进行的攻击,其目的是破坏电力系统的稳定性和安全性。节点攻击可以分为最高度数攻击、最高介数攻击和最高关键度攻击等。在本课题中,将模拟这四种攻击方式,对比电力系统的停电规模。2.系统仿真结果 3.核心程序与模型 版本…

CMake 属性之目标属性

CMake 可以通过属性来存储信息。它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标。例如一个全局的属性可以是一个有用的非缓存的全局变量。 在 CMake 的众多属性中,目标属性 ( Target Properties ) 扮演着尤为重要的角色,它们直接关联到最终生成…

模板测试

模板测试(Stencil Test)是3D渲染中的一种技术,它根据预设条件比较参考值与模板缓冲区的值来决定片段是否进行下一步深度测试。本文介绍了模板测试的条件判断公式、语法,包括命令、比较函数,以及更新操作的各种关键字,如Keep、Zero等。并通过穿透效果的例子展示了模板测试…

CH57X/CH58X/CH59X 加PA应用

一、前言在有些时候产品需要做到更远的距离在原来的基础上加上PA放大芯片来实现广播或者连接距离上的提升。 PA是Power Amplifier的简称,中文名称为功率放大器,简称“功放”,指在给定失真率条件下,能产生最大功率输出以驱动某一负载的放大器。对于射频通信系统,PA负责发射通道…