org.slf4j:slf4j-api:添加日志管理
org.slf4j:slf4j-api:添加日志管理
一个好的程序, 完全可以从Log中, 解决问题.
一个好的Log系统,是一个程序的关键.
本文介绍的是Logback-Android, 这个库,可以将Log写入到File,写入到数据库,写入到Email,写入到网络.
当然,最基本的Logcat窗口完美输出,是最基本的;
开源地址: https://github.com/tony19/logback-android
slf4j地址: http://www.slf4j.org/
slf4j API文档: http://www.slf4j.org/api/
如果你需要了解更多,请自行百度(谷歌);
logback 官方WIKI: https://github.com/tony19/logback-android/wiki
logback API文档: http://tony19.github.io/logback-android/doc/1.1.1-4/
推荐阅读: http://blog.csdn.net/haidage/article/details/6794529
1:Module中的build.gradle 添加以下依赖
- dependencies {
- ...
- compile 'org.slf4j:slf4j-api:1.7.21'
- compile 'com.github.tony19:logback-android-core:1.1.1-5'
- compile 'com.github.tony19:logback-android-classic:1.1.1-5'
- }
- 1
2:在以下位置创建一个logback.xml文件,默认情况下这个路径和文件名是固定的
3:配置logback文件
- <!--debug属性用来决定是否打印logback的日志信息-->
- <configuration debug='false'>
- <!--声明一个属性,用来指定log文件存放的路径-->
- <property name="LOG_DIR" value="/sdcard/rlog"/>
- <!--声明一个时间戳-->
- <timestamp datePattern="yyyyMMdd" key="today"/>
- <!--用于在控制台输出的Appender-->
- <appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender">
- <encoder>
- <pattern>%-5relative [%thread][%file:%M:%line] - %msg%n</pattern>
- </encoder>
- </appender>
- <!--声明一个FileAppender-->
- <appender name="BASE_FILE" class="ch.qos.logback.core.FileAppender">
- <!--初始化的时候不创建文件,在第一次使用的时候创建文件-->
- <lazy>true</lazy>
- <!--log追加到文件,否则覆盖文件-->
- <append>true</append>
- <!--用来保存log的文件全路径-->
- <file>${LOG_DIR}/base.log</file>
- <!--输出log的格式-->
- <encoder>
- <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern>-->
- <pattern>%date [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern>
- </encoder>
- </appender>
- <!--声明一个RollingFileAppender-->
- <appender name="BASE_ROLL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${LOG_DIR}/base.roll.${today}.log</file>
- <append>true</append>
- <encoder>
- <pattern>%date %-5relative [%thread] %-5level %logger{36} [%file:%M:%line] - %msg%n
- </pattern>
- </encoder>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${LOG_DIR}/base.roll.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!--最大保存7天的日志-->
- <maxHistory>7</maxHistory>
- </rollingPolicy>
- <!--文件大于10mb,切换文件-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <maxFileSize>10MB</maxFileSize>
- </triggeringPolicy>
- </appender>
- <!--指定logtest采用BASE_ROLL_FILE声明的RollingFileAppender输出日志-->
- <logger name="logtest">
- <appender-ref ref="BASE_ROLL_FILE"/>
- </logger>
- <!-- Write INFO (and higher-level) messages to the log file -->
- <root level="TRACE">
- <appender-ref ref="LOGCAT"/>
- </root>
- <!--支持的level-->
- <!--TRACE-->
- <!--DEBUG-->
- <!--INFO-->
- <!--WARN-->
- <!--ERROR-->
- <!--<pattern>
- %d{yyyy-MM-dd HH:mm:ss} [%level] - %msg%n
- Logger: %logger
- Class: %class
- File: %file
- Caller: %caller
- Line: %line
- Message: %m
- Method: %M
- Relative: %relative
- Thread: %thread
- Exception: %ex
- xException: %xEx
- nopException: %nopex
- rException: %rEx
- Marker: %marker
- %n
- </pattern>-->
- <!--引用其他位置的配置信息-->
- <!--<includes>-->
- <!--<include file="/sdcard/foo.xml"/>-->
- <!--<include resource="assets/config/test.xml"/>-->
- <!--<include resource="AndroidManifest.xml"/>-->
- <!--<include file="/sdcard/logback/logback-test.xml"/>-->
- <!--<include file="/sdcard/logback/logback.xml"/>-->
- <!--<include resource="AndroidManifest.xml"/>-->
- <!--<include resource="assets/logback-test.xml"/>-->
- <!--<include resource="assets/logback.xml"/>-->
- <!--</includes>-->
- </configuration>
还有其他的appender提供,详细说明移步:
http://logback.qos.ch/manual/appenders.html
4:代码测试
保存在文件中的Log信息:
彩蛋:控制台的颜色设置
友情提示,你可能需要添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
项目地址: https://github.com/angcyo/LogbackDemo
Android 中Jackson的简单使用
org.slf4j:slf4j-api:添加日志管理的更多相关文章
- springboot搭建环境之使用@Slf4j注解方式,进行日志管理
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 可以用注解@Slf4j 需要引入依赖为: < ...
- springBoot添加日志管理
一. 近期自己的项目想要一个记录日志的功能,而springboot本身就内置了日志功能,然而想要输入想要的日志,并且输出到磁盘,然后按天归档,或者日志的切分什么的,自带的日志仅仅具有简单的功能,百度了 ...
- 通过aop添加日志管理
1.使用spring 的 aop 技术切到自定义注解上,所以先创建一个自定义注解类 import java.lang.annotation.*; @Target(ElementType.METHOD) ...
- slf4j+logback搭建超实用的日志管理模块
文章转自http://www.2cto.com/kf/201702/536097.html slf4j+logback搭建超实用的日志管理模块(对日志有编号管理):日志功能在服务器端再常见不过了,我们 ...
- [转]slf4j 与log4j 日志管理
log4j简易入门 package test.log4j; import org.apache.log4j.Logger; public class HelloLog4j { private stat ...
- java日志管理 - slf4j+log4j2
1 . 概述 1.1 日志框架实现 log4j是apache实现的一个开源日志组件: logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j ...
- 日志管理-log4j与slf4j的使用
一.概述 1.log4j: Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Sy ...
- 日志框架(Log4J、SLF4J、Logback)--日志规范与实践
文章目录 一.Log4j 1.1新建一个Java工程,导入Log4j包,pom文件中对应的配置代码如下: 1.2resources目录下创建log4j.properties文件. 1.3输出日志 1. ...
- 如何给框架添加API接口日志
前言 用的公司的框架,是MVC框架,看了下里面的日志基类,是操作日志,对增删改进行记录, 夸张的是一张业务的数据表 需要一张专门的日志表进行记录, 就是说你写个更新,添加的方法都必须写一遍操作日志,代 ...
随机推荐
- Count the Colors 线段树
题目 参考博客地址 题意: n范围[1,8000] , li 和 ri 的范围[0,8000]. n个操作,每个操作是把 [li , ri]内的点修改成一个颜色c. n个操作过后,按颜色从小到大 ...
- linux系统编程之文件与io(二)
今天继续学习文件与io,话不多说,开始进入正题: 文件的read和write系统调用: 说明:函数中出现在size_t和ssize_t是针对系统定制的数据类型: 下面以一个实现文件简单拷贝的示 ...
- 28.XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
转自https://www.cnblogs.com/gdjlc/archive/2013/09/08/3308229.html XML Schema 语言也称作 XML Schema 定义(XML S ...
- (java)selenium webdriver学习--通过id、name定位,输入内容,搜索,关闭操作、通过tagname查找元素
selenium webdriver学习--通过id.name定位,输入内容,搜索,关闭操作:通过tagname查找元素 打开谷歌浏览器,输入不同的网站,搜索框的定位含有不同元素(有时为id,有时为n ...
- HTTP的幂等性
转自: https://www.jianshu.com/p/234cf2e96832 理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式.无论是在大型互联网应用还 ...
- 题解 UVa11388
题目大意 \(T\) 组数据,每组数据给定两个整数 \(G,L\),输出数对 \(x,y\) 满足 \(GCD(x,y)=G,LCM(x,y)=L\) 且 \(x\) 最小.若无解则输出 \(-1\) ...
- java spring boot 导出/下载文本文件操作(包含写文本文件)
内容简介 本文主要内容为使用java把内容写入文本文件,并实现下载/导出的功能. 实现步骤 1. controller层 @ResponseBody @RequestMapping(value = & ...
- docker的笔记
docker run 命令 docker run ubuntu:15.10 /bin/echo "Hello world" 各个参数解析: docker: Docker 的二进制执 ...
- Tensorflow细节-P42张量的概念及使用
1.运行以下代码 import tensorflow as tf a = tf.constant([1.0, 2.0], name="a") b = tf.constant([2. ...
- nginx反向代理 报错:Error during WebSocket handshake: Unexpected response code: 403
遇到nginx报错:websocket wss failed: Error during WebSocket handshake: Unexpected response code: 403 serv ...