info

SpringBoot整合日志框架LogBack

别来无恙 提交于 2019-12-22 00:14:12
日志可以记录我们应用程序的运行情况,我们可以通过日志信息去获取应用程序更多的信息。常用处理java日志的组件有:slf4j、log4j、logback、common-logging等。其中log4j是使用得最多的日志组件。 而LogBack是基于Log4j基础上大量改良的一种日志框架,但是它不能单独使用,推荐配合日志框架SLF4J来使用。 LogBack当前分成三个模块:logback-core、logback-classic和logback-access;其中logback-core是其它两个模块的基础,就像spring框架里的spring-core一样。 Logback的核心对象 Logger:日志记录器 Appender:指定日志输出的目的地,目的地可以是控制台,文件 Layout:日志布局,指定日志信息的输出的格式 日志级别 DEBUG INFO WARN ERROR DEBUG < INFO < WARN < ERROR 我们一般不会去选择DEBUG级别,因为DEBUG级别会输出很多信息,包括一些无用的信息。 Log4j转换到LogBack 因为目前使用得最广泛的还是Log4j,要想转换到LogBack,可以使用这个 转换工具 。 比方说我们现在有一个log4j.properties文件。 ### 设置日志记录器### log4j.rootLogger = debug

【MySQL】【ProxySQL】ProxySQL Cluster的搭建

自闭症网瘾萝莉.ら 提交于 2019-12-21 23:37:25
背景: ​ 早期的ProxySQL若需要做高可用,需要搭建两个实例,进行冗余。但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便。 ​ 从1.4.2版本后,ProxySQL支持原生的集群搭建,实例之间可以互通一些配置数据,大大简化了管理与维护操作。 环境: 实例名 版本 IP 系统 备注 ProxySQL 1 1.4.6 208 CentOS7 最初启动 ProxySQL 2 1.4.6 209 CentOS7 最初启动 ProxySQL 3 1.4.6 210 Debian9 后面加入 ​ 搭建: ​ 集群的搭建有很多种方式,如1+1+1的方式,还可以(1+1)+1的方式。 ​ 这里采用较简单的(1+1)+1,即先将两个节点作为集群启动,然后其他节点选择性加入的方式 1.更改所有实例的配置文件: vim /etc/proxysql.cnf # 需要更改的部分 admin_variables= { admin_credentials="admin:admin;cluster_20X:123456" #配置用于实例间通讯的账号 # mysql_ifaces="127.0.0.1:6032;/tmp/proxysql_admin.sock" mysql_ifaces="0.0.0.0:6032" #全网开放登录 #

Spring Boot集成Spring Security实现OAuth 2.0登录

元气小坏坏 提交于 2019-12-21 23:22:37
Spring Security OAuth项目已弃用,最新的OAuth 2.0支持由Spring Security提供。目前Spring Security尚不支持Authorization Server,仍需使用Spring Security OAuth项目,但最终将被Spring Security完全取代。 本文介绍了Spring Security OAuth2 Client的基础知识,如何利用Spring Security实现微信OAuth 2.0登录。GitHub源码 wechat-api 。 Spring Boot版本:2.2.2.RELEASE 为使用Spring Security OAuth2 Client,仅需在Spring Boot项目中增加以下依赖: dependencies { implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boot:spring-boot-starter-security' ... testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org

有关存储过程的几个例子

我的梦境 提交于 2019-12-21 21:07:19
示例 A. 使用带有复杂 SELECT 语句的简单过程 下面的存储过程从四个表的联接中返回所有作者(提供了姓名)、出版的书籍以及出版社。该存储过程不使用任何参数。 USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = au_info_all AND type = P) DROP PROCEDURE au_info_all GO CREATE PROCEDURE au_info_all AS SELECT au_lname, au_fname, title, pub_name FROM authors a INNER JOIN titleauthor ta ON a.au_id = ta.au_id INNER JOIN titles t ON t.title_id = ta.title_id INNER JOIN publishers p ON t.pub_id = p.pub_id GO au_info_all 存储过程可以通过以下方法执行: EXECUTE au_info_all -- Or EXEC au_info_all 如果该过程是批处理中的第一条语句,则可使用: au_info_all B. 使用带有参数的简单过程 下面的存储过程从四个表的联接中只返回指定的作者(提供了姓名)、出版的书籍以及出版社

吃透Shiro源码第五天

孤街浪徒 提交于 2019-12-21 20:18:38
文章目录 技术手法 (1)AuthenticationRealm设计思路 重点研究源码 技术手法 (1)AuthenticationRealm设计思路 AuthenticationRealm这个类我看了好久,实际上最最核心的方法就是提供:如何通过用户传递的AuthenticationToken来获取AuthentioncationInfo的方法。 @Override public final AuthenticationInfo getAuthenticationInfo ( AuthenticationToken token ) throws AuthenticationException { AuthenticationInfo info = getCachedAuthenticationInfo ( token ) ; if ( info == null ) { //核心:让子类通过token获取到info,这也是要强制重写的方法 info = doGetAuthenticationInfo ( token ) ; //尝试缓存 if ( token != null && info != null ) { LOGGER . debug ( "无缓存,尝试做token与info的缓存" ) ; //尝试缓存一下info

Logback 专题

丶灬走出姿态 提交于 2019-12-21 19:35:06
logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- <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 newline:%n </pattern> --> <property name="CUSTOM_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger -%msg%n"/> <include resource="org/springframework/boot/logging/logback/base.xml"/> <appender name="ROLLING-FILE-INFO" class="ch.qos

Appium+Python3+iOS真机环境搭建

有些话、适合烂在心里 提交于 2019-12-21 19:20:20
前言: Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。 本次环境配置相关: macOS:10.13.4 Appium-desktop:1.6.1 Xcode:9.3.1 --- 一、环境配置 1、 安装homebrew: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )" 2、 安装 libimobiledevice : $ brew install libimobiledevice --HEAD 3、 安装carthage: $ brew install carthage 4、安装node: $ brew install node 5、安装npm: $ brew install npm 6、安装ios-deploy: $ npm install -g ios-deploy 8、安装xcpretty: $ gem install xcpretty 9、安装appium,appium-doctor 进入 官网 ,下载 Appium-1.6.1.dmg ,安装即可。 当然你可以使用命令:npm install -g appium来安装appium

log4j和slf4j的区别

我只是一个虾纸丫 提交于 2019-12-21 14:14:28
之前在项目中用的日志记录器都是log4j的日志记录器,可是到了公司发现项目要求使用slf4j,于是想着研究一下slf4j的用法。   注意:每次引入Logger的时候注意引入的jar包,因为有Logger的包太多了。。。。。。      Logger必须作为类的静态变量使用 。原因如下: 1 使用static修饰的属性是归这个类使用的2 也就是说不论这个类实例化多少个,大家用的都是同一个static属性3 log4j记录的是当前类的日志,不是每个实例的日志4 所以只要有一个记录就可以了创建日志记录器方法:(最好声明加final关键字) //private static final Logger logger = LoggerFactory.getLogger(Slf4jTest.class);// slf4j日志记录器 private static final Logger logger = LoggerFactory.getLogger(Slf4jTest.class.getName());// slf4j日志记录器 简要记录一下日志级别: 每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分为: A:off 最高等级,用于关闭所有日志记录。 B:fatal 指出每个严重的错误事件将会导致应用程序的退出。 C:error

Sqlmap学习笔记(一)

こ雲淡風輕ζ 提交于 2019-12-21 09:19:22
Sqlmap安装 进入 sqlmap官网 ,下载,运行sqlmap.py文件即可 python sqlmap.py 通过pip安装 pip install sqlmap 直接在命令行运行sqlmap即可 Sqlmap直连数据库 sqlmap -d mysql://root:root@localhost:3306/test -f --banner ​ 如果报错需要下载pymysql模块 pip install pymsql ​ -d:直连数据库,后面跟着连接信息 -> mysql://用户名:密码@主机名:端口/数据库 ​ -f:打印DBMS信息 ​ --banner:打印banner信息,准确的版本号 ​ 成功访问,获取mysql信息 [23:47:45] [INFO] connection to MySQL server 'localhost:3306' established [23:47:45] [INFO] testing MySQL [23:47:45] [INFO] resumed: [['1']]... [23:47:45] [INFO] confirming MySQL [23:47:45] [INFO] resumed: [['1']]... [23:47:45] [INFO] the back-end DBMS is MySQL [23:47:45] [INFO

<二>ELK-6.5.3学习笔记–使用rsyslog传输管理nginx日志

白昼怎懂夜的黑 提交于 2019-12-21 03:56:05
http://www.eryajf.net/2362.html 转载于 本文预计阅读时间 28 分钟 文章目录[隐藏] 1,nginx日志json化。 2,发送端配置。 3,接收端配置。 4,配置logstash。 5,简单使用kibana。 现在有好几台主机的nginx日志想要监控分析一下,那么,如何让远程主机的日志都乖乖的来到elk主机之上呢,这是一个需要考虑的问题,而这里,我就使用rsyslog来完成。 这种方式貌似针对于远程主机上只有单项日志的情况,就像我们现在做的,只处理nginx的访问日志一般的,如果还有更多的日志需要从远程转发到elk集群中,就需要用其他方式了,或者说我只会配置这么一种,更复杂的,目前还玩不转。后来哈,在当我测试rsyslog转发多个日志的时候,发现,里边配置规则过于复杂,分类方面也非常不给力,就此打住,一旦多个日志,直接用filebeat即可。 现在,废话不多说,直接进入正题。 目前的思路,可以通过下图了解: 说明: 图中举例了两台nginx,其实可以有更多台nginx日志可以想后方转发。 双方以rsyslog作为桥梁,从而实现日志的中转运输。其中nginx主机上是发送端,elk主机上是接收端。 针对不同的nginx日志,可以启动不同的logstash实例,然后将日志转发给es。 由es,统一将日志转给kibana。