Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nouiWithSpringMVC
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gechengyang
nouiWithSpringMVC
Commits
6c96bf07
Commit
6c96bf07
authored
Aug 18, 2020
by
cjh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
日志打印数据库需求 框架搭建
parent
edda4758
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
209 additions
and
67 deletions
+209
-67
LoginController.java
...org/sss/presentation/noui/controller/LoginController.java
+2
-0
SqlLogAppender.java
...in/java/org/sss/presentation/noui/log/SqlLogAppender.java
+96
-0
LogAnnotation.java
...java/org/sss/presentation/noui/log/aop/LogAnnotation.java
+12
-0
LogAop.java
src/main/java/org/sss/presentation/noui/log/aop/LogAop.java
+39
-0
log4j.xml
src/main/resources/log4j.xml
+46
-41
log4j2.xml
src/main/resources/log4j2.xml
+0
-22
spring-mvc.xml
src/main/resources/spring-mvc.xml
+14
-4
No files found.
src/main/java/org/sss/presentation/noui/controller/LoginController.java
View file @
6c96bf07
...
...
@@ -29,6 +29,7 @@ import org.sss.presentation.noui.context.NoUiContextManager;
import
org.sss.presentation.noui.jwt.JWT
;
import
org.sss.presentation.noui.jwt.JwtLogin
;
import
org.sss.presentation.noui.jwt.RedisLoginInfo
;
import
org.sss.presentation.noui.log.aop.LogAnnotation
;
import
org.sss.presentation.noui.util.NoUiPresentationUtil
;
import
org.sss.presentation.noui.util.NumericUtil
;
import
org.sss.presentation.noui.util.RedisUtil
;
...
...
@@ -42,6 +43,7 @@ public class LoginController {
@Autowired
private
NoUiVersion
noUiVersion
;
@LogAnnotation
@ResponseBody
@RequestMapping
(
value
=
"/login"
,
method
=
RequestMethod
.
POST
)
public
Object
login
(
@RequestBody
Map
<
String
,
Object
>
dataMap
,
HttpServletRequest
request
,
HttpSession
session
)
{
...
...
src/main/java/org/sss/presentation/noui/log/SqlLogAppender.java
0 → 100644
View file @
6c96bf07
package
org
.
sss
.
presentation
.
noui
.
log
;
import
org.apache.log4j.AppenderSkeleton
;
import
org.apache.log4j.Layout
;
import
org.apache.log4j.MDC
;
import
org.apache.log4j.PatternLayout
;
import
org.apache.log4j.spi.LoggingEvent
;
import
org.sss.presentation.noui.common.Constants
;
import
org.sss.presentation.noui.log.aop.LogAop
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
public
class
SqlLogAppender
extends
AppenderSkeleton
{
private
PatternLayout
patternLayout
;
// protected String pattern;
protected
static
Map
<
String
,
List
>
map
=
new
ConcurrentHashMap
();
public
Map
<
String
,
List
>
getMap
(){
return
map
;
}
// public String getPattern() {
// return pattern;
// }
//
// public void setPattern(String pattern) {
// this.pattern = pattern;
// }
public
PatternLayout
getPatternLayout
()
{
return
patternLayout
;
}
public
void
setPatternLayout
(
PatternLayout
patternLayout
)
{
this
.
patternLayout
=
patternLayout
;
}
@Override
protected
void
append
(
LoggingEvent
loggingEvent
)
{
String
message
=
this
.
subAppend
(
loggingEvent
);
String
thread_name
=
(
String
)
MDC
.
get
(
LogAop
.
THREAD_NAME
);
if
(
thread_name
==
null
)
return
;
if
(
map
.
containsKey
(
thread_name
)){
map
.
get
(
thread_name
).
add
(
message
);
}
else
{
List
list
=
new
ArrayList
();
list
.
add
(
message
);
map
.
put
(
thread_name
,
list
);
}
}
public
String
subAppend
(
LoggingEvent
event
)
{
// PatternLayout patternLayout = new PatternLayout();
// patternLayout.setConversionPattern(pattern);
// setLayout(patternLayout);
String
result
;
if
(
layout
==
null
){
result
=
event
.
getRenderedMessage
();
}
else
{
result
=
layout
.
format
(
event
);
StringBuffer
buffer
=
new
StringBuffer
(
result
);
if
(
layout
.
ignoresThrowable
())
{
String
[]
s
=
event
.
getThrowableStrRep
();
if
(
s
!=
null
)
{
int
len
=
s
.
length
;
for
(
int
i
=
0
;
i
<
len
;
++
i
)
{
buffer
.
append
(
s
[
i
]);
buffer
.
append
(
Layout
.
LINE_SEP
);
}
}
}
result
=
new
String
(
buffer
);
}
return
result
;
}
@Override
public
void
close
()
{
}
@Override
public
boolean
requiresLayout
()
{
return
false
;
}
}
src/main/java/org/sss/presentation/noui/log/aop/LogAnnotation.java
0 → 100644
View file @
6c96bf07
package
org
.
sss
.
presentation
.
noui
.
log
.
aop
;
import
java.lang.annotation.*
;
/**
* Created by cjh on 2019/12/12 0012.
*/
@Target
(
ElementType
.
METHOD
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
public
@interface
LogAnnotation
{
}
src/main/java/org/sss/presentation/noui/log/aop/LogAop.java
0 → 100644
View file @
6c96bf07
package
org
.
sss
.
presentation
.
noui
.
log
.
aop
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.MDC
;
import
org.aspectj.lang.JoinPoint
;
import
org.sss.presentation.noui.log.SqlLogAppender
;
import
java.util.List
;
import
java.util.Map
;
public
class
LogAop
{
public
final
static
String
THREAD_NAME
=
"thread_name"
;
public
void
before
(
JoinPoint
joinPoint
){
MDC
.
put
(
THREAD_NAME
,
Thread
.
currentThread
().
getName
());
}
public
void
after
(
JoinPoint
joinPoint
){
String
thread_name
=
(
String
)
MDC
.
get
(
THREAD_NAME
);
MDC
.
clear
();
//发送每笔交易的日志到MQ
SqlLogAppender
sqlLogAppender
=
(
SqlLogAppender
)
Logger
.
getRootLogger
().
getAppender
(
"SqlLog"
);
if
(
sqlLogAppender
!=
null
){
Map
<
String
,
List
>
map
=
sqlLogAppender
.
getMap
();
List
<
String
>
list
=
map
.
get
(
thread_name
);
StringBuffer
buffer
=
new
StringBuffer
();
if
(
list
!=
null
){
for
(
String
str:
list
){
buffer
.
append
(
str
);
}
}
map
.
remove
(
thread_name
);
}
}
}
src/main/resources/log4j.xml
View file @
6c96bf07
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
xmlns:log4j=
"http://jakarta.apache.org/log4j/"
debug=
"false"
>
<appender
name=
"FILE"
class=
"org.apache.log4j.DailyRollingFileAppender"
>
<param
name=
"Threshold"
value=
"ERROR"
/>
<param
name=
"Encoding"
value=
"UTF-8"
/>
<param
name=
"File"
value=
"../logs/eibs.log"
/>
<param
name=
"Append"
value=
"true"
/>
<param
name=
"DatePattern"
value=
"'.'yyyy-MM-dd"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%d %-5p [%c] (%t) %m%n"
/>
</layout>
<filter
class=
"log.PatternFilter"
>
<param
name=
"Pattern"
value=
"org.sss.*"
/>
<param
name=
"AcceptOnMatch"
value=
"true"
/>
</filter>
</appender>
<appender
name=
"CONSOLE"
class=
"org.apache.log4j.ConsoleAppender"
>
<param
name=
"Threshold"
value=
"TRACE"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%d{ABSOLUTE} %-5p [%-10t][%c{1}] %m%n"
/>
</layout>
<filter
class=
"org.apache.log4j.varia.LevelRangeFilter"
>
<param
name=
"LevelMax"
value=
"ERROR"
/>
<param
name=
"LevelMin"
value=
"TRACE"
/>
</filter>
</appender>
<category
name=
"org.sss"
>
<priority
value=
"INFO"
/>
</category>
<category
name=
"org.hibernate"
>
<priority
value=
"ERROR"
/>
</category>
<category
name=
"org.apache"
>
<priority
value=
"ERROR"
/>
</category>
<category
name=
"com.opensymphony"
>
<priority
value=
"ERROR"
/>
</category>
<root>
<level
value=
"WARN"
/>
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"FILE"
/>
</root>
<appender
name=
"FILE"
class=
"org.apache.log4j.DailyRollingFileAppender"
>
<param
name=
"Threshold"
value=
"ERROR"
/>
<param
name=
"Encoding"
value=
"UTF-8"
/>
<param
name=
"File"
value=
"../logs/eibs.log"
/>
<param
name=
"Append"
value=
"true"
/>
<param
name=
"DatePattern"
value=
"'.'yyyy-MM-dd"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%d %-5p [%c] (%t) %m%n"
/>
</layout>
</appender>
<appender
name=
"CONSOLE"
class=
"org.apache.log4j.ConsoleAppender"
>
<param
name=
"Threshold"
value=
"TRACE"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%d{ABSOLUTE} %-5p [%-10t][%c{1}] %m%n"
/>
</layout>
<filter
class=
"org.apache.log4j.varia.LevelRangeFilter"
>
<param
name=
"LevelMax"
value=
"ERROR"
/>
<param
name=
"LevelMin"
value=
"TRACE"
/>
</filter>
</appender>
<appender
name=
"SqlLog"
class=
"org.sss.presentation.noui.log.SqlLogAppender"
>
<param
name=
"Threshold"
value=
"ERROR"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%d %-5p [%c] (%t) %m%n"
/>
</layout>
</appender>
<category
name=
"org.sss"
>
<priority
value=
"INFO"
/>
</category>
<category
name=
"org.hibernate"
>
<priority
value=
"ERROR"
/>
</category>
<category
name=
"org.apache"
>
<priority
value=
"ERROR"
/>
</category>
<category
name=
"com.opensymphony"
>
<priority
value=
"ERROR"
/>
</category>
<root>
<level
value=
"WARN"
/>
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"FILE"
/>
<appender-ref
ref=
"SqlLog"
/>
</root>
</log4j:configuration>
\ No newline at end of file
src/main/resources/log4j2.xml
deleted
100644 → 0
View file @
edda4758
<?xml version="1.0" encoding="UTF-8"?>
<Configuration
status=
"INFO"
>
<Appenders>
<Console
name=
"Console"
target=
"SYSTEM_OUT"
>
<PatternLayout
pattern=
"%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
/>
</Console>
<File
name=
"File"
fileName=
"log/eibs-designer.log"
>
<PatternLayout
pattern=
"%d %-5p %C{2} [%t] %m%n"
/>
</File>
</Appenders>
<Loggers>
<Logger
name=
"org.sss"
level=
"DEBUG"
/>
<Logger
name=
"org.hibernate"
level=
"ERROR"
/>
<Logger
name=
"org.apache"
level=
"ERROR"
/>
<Logger
name=
"com.opensymphony"
level=
"ERROR"
/>
<Root
level=
"DEBUG"
>
<AppenderRef
ref=
"Console"
/>
<AppenderRef
ref=
"File"
/>
</Root>
</Loggers>
</Configuration>
\ No newline at end of file
src/main/resources/spring-mvc.xml
View file @
6c96bf07
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context=
"http://www.springframework.org/schema/context"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context=
"http://www.springframework.org/schema/context"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"
>
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
"
>
<mvc:annotation-driven
/>
...
...
@@ -45,6 +46,15 @@
<property
name=
"version"
value=
"V1.0.0"
/>
</bean>
<bean
id=
"logAop"
class=
"org.sss.presentation.noui.log.aop.LogAop"
/>
<aop:config>
<aop:aspect
id=
"handler"
ref=
"logAop"
>
<aop:pointcut
id=
"point"
expression=
"execution(* org.sss.presentation.noui.controller..*(..)) && @annotation(org.sss.presentation.noui.log.aop.LogAnnotation)"
/>
<aop:before
method=
"before"
pointcut-ref=
"point"
/>
<aop:after
method=
"after"
pointcut-ref=
"point"
/>
</aop:aspect>
</aop:config>
<!-- 配置自动扫描的包 -->
<context:component-scan
base-package=
"org.sss.presentation.noui.controller"
></context:component-scan>
...
...
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