Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
c2c9de53
Commit
c2c9de53
authored
Oct 28, 2020
by
rex.tan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加日志收集
parent
e852a35b
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
101 additions
and
16 deletions
+101
-16
src/main/java/cn/timer/api/aspect/RequestAop.java
+10
-16
src/main/resources/logback-spring.xml
+91
-0
No files found.
src/main/java/cn/timer/api/aspect/RequestAop.java
View file @
c2c9de53
...
...
@@ -2,9 +2,10 @@ package cn.timer.api.aspect;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
java.util.ArrayList
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Enumeration
;
import
java.util.
List
;
import
java.util.
TimeZone
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -24,7 +25,6 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
cn.timer.api.config.exception.CustomException
;
import
cn.timer.api.utils.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
/**
...
...
@@ -38,18 +38,6 @@ import lombok.extern.slf4j.Slf4j;
@Component
@Order
(
999
)
public
class
RequestAop
{
/**
* 排除拦截的url列表
*/
static
final
List
<
String
>
LOGIN_URL
=
new
ArrayList
<
String
>()
{
private
static
final
long
serialVersionUID
=
1L
;
{
// 第三方数据同步接口
add
(
"/rest/sync/data"
);
// 版本检查接口
add
(
"/rest/base/app/baseVersionUpgrade"
);
}
};
@Pointcut
(
"execution(* cn.timer..*.*Controller.*(..))"
)
public
void
init
()
{
...
...
@@ -126,7 +114,7 @@ public class RequestAop {
// }
json
.
put
(
"url"
,
url
);
json
.
put
(
"timestamp"
,
System
.
currentTimeMillis
());
json
.
put
(
"visitTime"
,
DateUtil
.
now2String
());
json
.
put
(
"visitTime"
,
now2String
());
json
.
put
(
"message"
,
message
);
json
.
put
(
"status"
,
status
);
json
.
put
(
"executionTime"
,
executionTime
);
...
...
@@ -214,4 +202,10 @@ public class RequestAop {
return
urlArgsJson
;
}
private
static
String
now2String
()
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
sdf
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"Asia/Shanghai"
));
Date
now
=
new
Date
();
return
sdf
.
format
(
now
);
}
}
src/main/resources/logback-spring.xml
0 → 100644
View file @
c2c9de53
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<!--2、设置上下文名称 每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,用于区分不同应用程序的记录。
一旦设置,不能修改,可以通过 %contextName 来打印日志上下文名称,一般来说我们不用这个属性,可有可无。 -->
<!--<contextName>cool_is_life</contextName> -->
<!--3、设置变量 用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。 通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<!--<property name="log.path" value="/logs/logback.log" /> -->
<!--<property name="log.path" value="/logs/logback" /> -->
<property
name=
"logback.logdir"
value=
"/deploy/logs/"
/>
<property
name=
"logback.appname"
value=
"8timer-api"
/>
<!--4、appender用来格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。
控制台输出 ConsoleAppender 输出到文件 RollingFileAppender -->
<!--输出到控制台 -->
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
%d{YYYY-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</appender>
<!--输出到文件 -->
<appender
name=
"file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,所以我们使用下面的策略,可以避免输出
Error 的日志 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<!--过滤 Error -->
<level>
ERROR
</level>
<!--匹配到就禁止 -->
<onMatch>
DENY
</onMatch>
<!--没有匹配到就允许 -->
<onMismatch>
ACCEPT
</onMismatch>
</filter>
<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则,如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
<file>
${logback.logdir}/${logback.appname}.info.log
</file>
<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间 -->
<FileNamePattern>
${logback.logdir}/bak/${logback.appname}.info.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<!--只保留最近7天的日志 -->
<maxHistory>
7
</maxHistory>
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志 -->
<totalSizeCap>
1GB
</totalSizeCap>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>
%d{YYYY-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n
</pattern>
</encoder>
</appender>
<appender
name=
"fileErrorLog"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter -->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
error
</level>
</filter>
<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
<File>
${logback.logdir}/${logback.appname}.error.log
</File>
<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间 -->
<FileNamePattern>
${logback.logdir}/bak/${logback.appname}.error.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<!--只保留最近7天的日志 -->
<maxHistory>
7
</maxHistory>
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志 -->
<!--<totalSizeCap>1GB</totalSizeCap> -->
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!--日志输出编码格式化 -->
<encoder>
<charset>
UTF-8
</charset>
<pattern>
%d [%thread] %-5level %logger{36} %line - %msg%n
</pattern>
</encoder>
</appender>
<!--1、root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。 level:用来设置打印级别,大小写无关:TRACE,
DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。 默认是DEBUG。 可以包含零个或多个元素,标识这个appender将会添加到这个loger。 -->
<root
level=
"INFO"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"file"
/>
<appender-ref
ref=
"fileErrorLog"
/>
</root>
</configuration>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment