Logger 基本用法

article/2025/9/17 3:46:17

Logger 基本用法

简介


Simple, pretty and powerful logger for android
为Android提供的,简单、强大而且格式美观的工具

本质就是封装系统提供的Log类,加上一些分割线易于查找不同的Log;logcat中显示的信息可配置。最初的样子如下图


包含线程信息、Log所在的类、方法及所在行数。

这里我忍不住了,就先写了我最喜欢的功能,嘎嘎嘎~~
最最最基本的依赖和简单打印在第二页

我觉得最好的功能是:Logger支持设置日志保存到本地,这样的话就可以想上传上传了。做自己的日志管理系统倍爽!
不过日志保存的位置写死了。找位置的方法是
在Logger包里的 DiskLogAdapter类的构造函数,进入build()方法里。

public DiskLogAdapter() {formatStrategy = CsvFormatStrategy.newBuilder().build();
}

进入build(),就可以找到相应的路径

@NonNull public CsvFormatStrategy build() {if (date == null) {date = new Date();}if (dateFormat == null) {dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS", Locale.UK);}if (logStrategy == null) {//地址在这里String diskPath = Environment.getExternalStorageDirectory().getAbsolutePath();String folder = diskPath + File.separatorChar + "logger";HandlerThread ht = new HandlerThread("AndroidFileLogger." + folder);ht.start();Handler handler = new DiskLogStrategy.WriteHandler(ht.getLooper(), folder, MAX_BYTES);logStrategy = new DiskLogStrategy(handler);}return new CsvFormatStrategy(this);
}

具体路径是:/storage/emulated/0/logger
每个文件最大为500K,源码贴出来~~~~
private static final int MAX_BYTES = 500 * 1024; // 500K averages to a 4000 lines per file

生成的文件名称为logs_0.csv 后面的数字会递增 源码贴出来~~~~
newFile = new File(folder, String.format("%s_%s.csv", fileName, newFileCount));


刚用markDown不太会用


我最喜欢的部分写完了,下面写点常规的操作吧。simple

一、依赖Logger

地址:https://github.com/orhanobut/logger
本来不想贴地址呢,github是个好东西,介于我两天前还不会用github,还是贴上吧,啦啦啦,我是莉莉的小叮当
github上介绍很详细了,但是我还是想粘贴一遍。

依赖

dependencies {implementation 'com.orhanobut:logger:2.2.0'
}

初始化

Logger.addLogAdapter(new AndroidLogAdapter());

到这里Logger已经可以用了
Logger.d(“debug”);
Logger.e(“error”);
Logger.w(“warning”);
Logger.v(“verbose”);
Logger.i(“information”);
Logger.wtf(“What a Terrible Failure”);

下面写点我自己的Logger用法

    val formatStrategy = PrettyFormatStrategy.newBuilder().showThreadInfo(true)  //(可选)是否显示线程信息。 默认值为true.methodCount(1)         // (可选)要显示的方法行数。 默认2.methodOffset(5)        // (可选)隐藏内部方法调用到偏移量。 默认5.tag("doShare")//(可选)每个日志的全局标记。 默认PRETTY_LOGGER.build()Logger.addLogAdapter(AndroidLogAdapter(formatStrategy))//根据上面的格式设置logger相应的适配器Logger.addLogAdapter(DiskLogAdapter())//保存到文件

http://chatgpt.dhexx.cn/article/TosbP7li.shtml

相关文章

【Logback】<logger>、<root>标签详解

文章目录 背景一、\<logger>使用1.1、使用示例1.1、属性配置说明 & 演示1.1.1、name1.1.2、level1.1.3、additivity1.1.3.1、效果演示&#xff1a;additivitytrue1.1.3.1、效果演示&#xff1a;additivity"false" 1.2 appender-ref 二、\<root>使用2…

python之logger

import logging import os.path import time def test_log():"""指定保存日志的文件路径&#xff0c;日志级别&#xff0c;以及调用文件将日志存入到指定的文件中:paramlogger:"""# 创建一个loggerlogger logging.getLogger()logger.setLevel(l…

Python中logger日志模块详解

1 logging模块简介 logging模块是Python内置的标准模块&#xff0c;主要用于输出运行日志&#xff0c;可以设置输出日志的等级、日志保存路径、日志文件回滚等&#xff1b;相比print&#xff0c;具备如下优点&#xff1a; 可以通过设置不同的日志等级&#xff0c;在release版…

logger:一款管理日志的Python神器

最近要新开一个项目&#xff0c;需要配个 logger 来管理日志&#xff0c;今天分享一下&#xff0c;喜欢记得点赞、关注、收藏。 【注】文末提供交流互助群 import logging ori_logger logging.getLogger(custom_logger) ori_logger.setLevel(logging.INFO) ori_logger.addHa…

Tensorboard + Logger 日志记录

在Pytorch 训练模型的时候&#xff0c;需要日志帮助开发者记录些重要信息和参数&#xff0c;以方便开发者更好的调节模型及参数&#xff0c;常见的日志非 Tensorboard不可&#xff0c;但是Pytorch 对 Tensorboard 的支持不是十分完美&#xff0c;在记录模型重要参数时 Tensorbo…

深入理解 rootLogger、logLogger、qtLogger

作者: 一去、二三里个人微信号: iwaleon微信公众号: 高效程序员 在使用 Log4Qt 时,你会发现有一系列的 logger - rootLogger()、logLogger()、qtLogger(),简直傻傻分不清楚! 为什么会有这么多 logger? 各 logger 之间有什么关系? 它们均适用于哪种场景? 参考文档对这部…

logger 报错

logger 报错&#xff1a;&#xff08;log4j 起不来&#xff0c;log message打不出来&#xff09; No appenders could be found for logger (com.vip.qa.android.base.DriverFactory). log4j:WARN Please initialize the log4j system properly. 原因&#xff1a; log4j.prop…

java的logger_java.util.logging.Logger 使用详解

概述: 第1部分 创建Logger对象 要使用J2SE的日志功能,首先要取得java.util.logging.Logger实例,这可以通过Logger类的两个静态getLogger()方法来取得: staticLogger getLogger(String name) 查找或创建一个logger。staticLogger getLogger(String name, String resourceBun…

Logger日志使用教程

Java util Logger的使用步骤 Java util Logger是java原生的日志生成工具&#xff0c;不需要另外引用类库&#xff0c;使用方便&#xff0c;学习简单&#xff0c;能够在小型应用中灵活使用。下面从实际应用角度&#xff0c;对Logger的使用步骤作出总结&#xff0c;以实现快速掌握…

Logger 日志管理

转载请注明出处&#xff1a; http://blog.csdn.net/like_program/article/details/52986553 1.Logger 是什么 在我们日常的开发中&#xff0c;肯定是少不了要和 Log 打交道&#xff0c;回想一下我们是怎么使用 Log 的&#xff1a;先定义一个静态常量 TAG&#xff0c;TAG 的值通…

【转】最详细的Log4J使用教程一、入门实例二、Log4J基本使用方法三、Spring中使用Log4J四、实战经验总结

原文地址&#xff1a;http://www.codeceo.com/article/log4j-usage.html 日志是应用软件中不可缺少的部分&#xff0c;Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站&#xff1a;jakarta.apache.org/log4j可以免费下载到Log4j最新版本的软…

Logger打印日志

1. 一个最基本的例子 使用Logging框架写Log基本上就三个步骤 引入loggerg类和logger工厂类声明logger记录日志 下面看一个例子 // 1. 引入slf4j接口的Logger和LoggerFactory import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UserService { // 2. 声明…

rename 批量修改文件名

1.批量修改文件后缀&#xff1a; rename s/// *.nii rename s/\.nii/\.txt/ * #把.nii后缀改为.txt rename s/\.txt// * #把.txt后缀去掉 rename s/$/\.nii/ * #加上后缀.nii rename s//\.nii/ * #这样会把.nii放到文件名前面&#xff0c;导致文件被隐藏。 rename s/^/dm/ * #…

Linux基本功系列之rename命令实战

文章目录 一. rename 命令介绍二. 语法格式及常用选项三. 参考案例3.1 将当前目录下所有.cfg的文件&#xff0c;替换为.txt结尾3.2 将所有出现mufeng的部分都替换为mufeng13.3 将mufeng0开头都变成mufeng00开头3.4 rename支持正则表示式 总结 前言&#x1f680;&#x1f680;&a…

VS项目rename

Visual Studio c项目更改相关文件名字 项目里面文件夹 Rename 右键 .sln文件, 打开方式–> txt方式打开编辑找到里面project的文件夹名字, Rename. 然后到资源管理器里, 找到对应的folder, Rename. .vcxproj相关文件 Rename 相关文件Rename .sln文件, txt打开–>Ren…

rename 命令 – 批量修改文件名称

rename 命令的功能是用于批量修改文件名称。与 mv 命令一次只能修改一个文件名不同&#xff0c;rename命令能够基于正则表达式对文件名进行批量修改&#xff0c;但要求是把匹配规则准确的描述给系统。 rename 命令的参数有三项&#xff1a;其一是当前文件名中要被修改的字符&am…

linux之rename命令

用字符串替换的方式批量改变文件名 rename 命令存在两个版本用法上有所区别 C语言版本, 支持通配符 [常用通配符说明] ? 表示一个任意字符 * 表示一个或一串任意字符 [charset] 可替代charset集中的任意单个字符Perl版本, 支持正则表达式 [常用正则表达式符号说明] ^…

pandas:案例详解 rename函数 修改列名和行名

pandas&#xff1a;案例详解rename函数 修改列名和索引 rename函数简介0 构建学习数据1 修改索引两种方式2 修改列名两种方式3 是否替换原列表3 pandas 字母转换大小写3 使用axis参数常见问题问题&#xff1a;参数位置错误修改办法&#xff1a; rename函数简介 df.rename(inde…

关于Unity 2020找不到PBR graph的问题,shader graph 10 版本

2020.4以后采用了船新的Shader Graph&#xff0c;变动挺大的。 建议还是换版本或者去官网学习。 PBR是没有了&#xff0c;但是有两个空的Shader 一个是Blank Shader&#xff0c;即空shader&#xff0c;自己进去里面创建PBR(前排提醒&#xff0c;不是简单拖一个PBR nodes&#x…

Substance与PBR工作流总结

关于PBR PBR即基于物理的渲染&#xff0c;是一套尝试基于真实世界光照物理模型的渲染技术合集&#xff0c;使用了一种更符合物理学规律的方式来模拟光线&#xff0c;达到更真实的渲染效果&#xff0c;而且可以直接通过物理参数来直观地达到想要的结果&#xff0c;不用通过拙劣的…