Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
15b3add2
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 大约 1 年
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
15b3add2
编写于
12月 07, 2016
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add toolkit of log4j, log4j2, logback and match toolkit-activation
上级
dd7cce99
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
279 addition
and
4 deletion
+279
-4
skywalking-application-toolkit/pom.xml
skywalking-application-toolkit/pom.xml
+2
-0
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternConverter.java
...lking/toolkit/log/log4j/v1/x/TraceIdPatternConverter.java
+1
-1
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternLayout.java
...ywalking/toolkit/log/log4j/v1/x/TraceIdPatternLayout.java
+1
-1
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternParser.java
...ywalking/toolkit/log/log4j/v1/x/TraceIdPatternParser.java
+1
-1
skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/pom.xml
...-application-toolkit/skywalking-toolkit-log4j-2.x/pom.xml
+22
-0
skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/src/main/java/com/a/eye/skywalking/toolkit/log4j/v2/x/TraceIdConverter.java
...a/eye/skywalking/toolkit/log4j/v2/x/TraceIdConverter.java
+34
-0
skywalking-application-toolkit/skywalking-toolkit-logback-1.x/pom.xml
...pplication-toolkit/skywalking-toolkit-logback-1.x/pom.xml
+21
-0
skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/LogbackPatternConverter.java
...walking/toolkit/logback/v1/x/LogbackPatternConverter.java
+14
-0
skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/TraceIdPatternLogbackLayout.java
...ing/toolkit/logback/v1/x/TraceIdPatternLogbackLayout.java
+12
-0
skywalking-sniffer/skywalking-agent/pom.xml
skywalking-sniffer/skywalking-agent/pom.xml
+5
-0
skywalking-sniffer/skywalking-toolkit-activation/pom.xml
skywalking-sniffer/skywalking-toolkit-activation/pom.xml
+2
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v1/x/TraceIdPatternConverterActivation.java
...ivation/log4j/v1/x/TraceIdPatternConverterActivation.java
+1
-1
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/pom.xml
...ctivation/skywalking-toolkit-log4j-2.x-activation/pom.xml
+15
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/PrintTraceIdInterceptor.java
...oolkit/activation/log4j/v2/x/PrintTraceIdInterceptor.java
+30
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/TraceIdConverterActivation.java
...kit/activation/log4j/v2/x/TraceIdConverterActivation.java
+37
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/resources/skywalking-plugin.def
...j-2.x-activation/src/main/resources/skywalking-plugin.def
+1
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/pom.xml
...ivation/skywalking-toolkit-logback-1.x-activation/pom.xml
+15
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/LogbackPatternConverterActivation.java
...ation/logback/v1/x/LogbackPatternConverterActivation.java
+37
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/PrintTraceIdInterceptor.java
...lkit/activation/logback/v1/x/PrintTraceIdInterceptor.java
+27
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/resources/skywalking-plugin.def
...k-1.x-activation/src/main/resources/skywalking-plugin.def
+1
-0
未找到文件。
skywalking-application-toolkit/pom.xml
浏览文件 @
15b3add2
...
...
@@ -15,5 +15,7 @@
<modules>
<module>
skywalking-toolkit-log4j-1.x
</module>
<module>
skywalking-toolkit-log4j-2.x
</module>
<module>
skywalking-toolkit-logback-1.x
</module>
</modules>
</project>
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/
plugin
/log/log4j/v1/x/TraceIdPatternConverter.java
→
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/
toolkit
/log/log4j/v1/x/TraceIdPatternConverter.java
浏览文件 @
15b3add2
package
com.a.eye.skywalking.
plugin
.log.log4j.v1.x
;
package
com.a.eye.skywalking.
toolkit
.log.log4j.v1.x
;
import
org.apache.log4j.helpers.PatternConverter
;
import
org.apache.log4j.spi.LoggingEvent
;
...
...
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/
plugin
/log/log4j/v1/x/TraceIdPatternLayout.java
→
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/
toolkit
/log/log4j/v1/x/TraceIdPatternLayout.java
浏览文件 @
15b3add2
package
com.a.eye.skywalking.
plugin
.log.log4j.v1.x
;
package
com.a.eye.skywalking.
toolkit
.log.log4j.v1.x
;
import
org.apache.log4j.PatternLayout
;
...
...
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/
plugin
/log/log4j/v1/x/TraceIdPatternParser.java
→
skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/
toolkit
/log/log4j/v1/x/TraceIdPatternParser.java
浏览文件 @
15b3add2
package
com.a.eye.skywalking.
plugin
.log.log4j.v1.x
;
package
com.a.eye.skywalking.
toolkit
.log.log4j.v1.x
;
import
org.apache.log4j.helpers.PatternParser
;
...
...
skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/pom.xml
0 → 100644
浏览文件 @
15b3add2
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
skywalking-application-toolkit
</artifactId>
<groupId>
com.a.eye
</groupId>
<version>
2.0-2016
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
skywalking-toolkit-log4j-2.x
</artifactId>
<dependencies>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-core
</artifactId>
<version>
2.7
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/src/main/java/com/a/eye/skywalking/toolkit/log4j/v2/x/TraceIdConverter.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.log4j.v2.x
;
import
org.apache.logging.log4j.core.LogEvent
;
import
org.apache.logging.log4j.core.config.plugins.Plugin
;
import
org.apache.logging.log4j.core.pattern.ConverterKeys
;
import
org.apache.logging.log4j.core.pattern.LogEventPatternConverter
;
/**
* Created by wusheng on 2016/12/7.
*/
@Plugin
(
name
=
"TraceIdConverter"
,
category
=
"Converter"
)
@ConverterKeys
({
"tid"
})
public
class
TraceIdConverter
extends
LogEventPatternConverter
{
/**
* Constructs an instance of LoggingEventPatternConverter.
*
* @param name name of converter.
* @param style CSS style for output.
*/
protected
TraceIdConverter
(
String
name
,
String
style
)
{
super
(
name
,
style
);
}
public
static
TraceIdConverter
newInstance
(
String
[]
options
)
{
return
new
TraceIdConverter
(
"tid"
,
"tid"
);
}
@Override
public
void
format
(
LogEvent
event
,
StringBuilder
toAppendTo
)
{
toAppendTo
.
append
(
"TID: N/A"
);
}
}
skywalking-application-toolkit/skywalking-toolkit-logback-1.x/pom.xml
0 → 100644
浏览文件 @
15b3add2
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
skywalking-application-toolkit
</artifactId>
<groupId>
com.a.eye
</groupId>
<version>
2.0-2016
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
skywalking-toolkit-logback-1.x
</artifactId>
<dependencies>
<dependency>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
<version>
1.1.7
</version>
</dependency>
</dependencies>
</project>
skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/LogbackPatternConverter.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.logback.v1.x
;
import
ch.qos.logback.classic.pattern.ClassicConverter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
/**
* Created by wusheng on 2016/12/7.
*/
public
class
LogbackPatternConverter
extends
ClassicConverter
{
@Override
public
String
convert
(
ILoggingEvent
iLoggingEvent
)
{
return
"TID: N/A"
;
}
}
skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/TraceIdPatternLogbackLayout.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.logback.v1.x
;
import
ch.qos.logback.classic.PatternLayout
;
/**
* Created by wusheng on 2016/12/7.
*/
public
class
TraceIdPatternLogbackLayout
extends
PatternLayout
{
static
{
defaultConverterMap
.
put
(
"tid"
,
LogbackPatternConverter
.
class
.
getName
());
}
}
skywalking-sniffer/skywalking-agent/pom.xml
浏览文件 @
15b3add2
...
...
@@ -64,6 +64,11 @@
<artifactId>
skywalking-toolkit-log4j-1.x-activation
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-log4j-2.x-activation
</artifactId>
<version>
${project.version}
</version>
</dependency>
</dependencies>
<build>
<finalName>
${artifactId}
</finalName>
...
...
skywalking-sniffer/skywalking-toolkit-activation/pom.xml
浏览文件 @
15b3add2
...
...
@@ -11,6 +11,8 @@
<packaging>
pom
</packaging>
<modules>
<module>
skywalking-toolkit-log4j-1.x-activation
</module>
<module>
skywalking-toolkit-log4j-2.x-activation
</module>
<module>
skywalking-toolkit-logback-1.x-activation
</module>
</modules>
<artifactId>
skywalking-toolkit-activation
</artifactId>
...
...
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v1/x/TraceIdPatternConverterActivation.java
浏览文件 @
15b3add2
...
...
@@ -12,7 +12,7 @@ import com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher;
public
class
TraceIdPatternConverterActivation
extends
ClassInstanceMethodsEnhancePluginDefine
{
@Override
protected
String
enhanceClassName
()
{
return
"com.a.eye.skywalking.
plugin
.log.log4j.v1.x.TraceIdPatternConverter"
;
return
"com.a.eye.skywalking.
toolkit
.log.log4j.v1.x.TraceIdPatternConverter"
;
}
@Override
...
...
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/pom.xml
0 → 100644
浏览文件 @
15b3add2
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
skywalking-toolkit-activation
</artifactId>
<groupId>
com.a.eye
</groupId>
<version>
2.0-2016
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
skywalking-toolkit-log4j-2.x-activation
</artifactId>
</project>
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/PrintTraceIdInterceptor.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.activation.log4j.v2.x
;
import
com.a.eye.skywalking.api.Tracing
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
/**
* Created by wusheng on 2016/12/7.
*/
public
class
PrintTraceIdInterceptor
implements
InstanceMethodsAroundInterceptor
{
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
((
StringBuilder
)
interceptorContext
.
allArguments
()[
1
]).
append
(
"TID:"
+
Tracing
.
getTraceId
());
//make sure origin method do not invoke.
result
.
defineReturnValue
(
null
);
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/TraceIdConverterActivation.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.activation.log4j.v2.x
;
import
com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.MethodMatcher
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine
;
import
com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher
;
/**
* Created by wusheng on 2016/12/7.
*/
public
class
TraceIdConverterActivation
extends
ClassInstanceMethodsEnhancePluginDefine
{
@Override
protected
String
enhanceClassName
()
{
return
"com.a.eye.skywalking.toolkit.log4j.v2.x.TraceIdConverter"
;
}
@Override
protected
ConstructorInterceptPoint
[]
getConstructorsInterceptPoints
()
{
return
null
;
}
@Override
protected
InstanceMethodsInterceptPoint
[]
getInstanceMethodsInterceptPoints
()
{
return
new
InstanceMethodsInterceptPoint
[]{
new
InstanceMethodsInterceptPoint
()
{
@Override
public
MethodMatcher
[]
getMethodsMatchers
()
{
return
new
MethodMatcher
[]{
new
SimpleMethodMatcher
(
"format"
)};
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.log4j.v2.x.PrintTraceIdInterceptor"
;
}
}};
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/resources/skywalking-plugin.def
0 → 100644
浏览文件 @
15b3add2
com.a.eye.skywalking.toolkit.activation.log4j.v2.x.TraceIdConverterActivation
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/pom.xml
0 → 100644
浏览文件 @
15b3add2
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
skywalking-toolkit-activation
</artifactId>
<groupId>
com.a.eye
</groupId>
<version>
2.0-2016
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
skywalking-toolkit-logback-1.x-activation
</artifactId>
</project>
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/LogbackPatternConverterActivation.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.activation.logback.v1.x
;
import
com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.MethodMatcher
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine
;
import
com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher
;
/**
* Created by wusheng on 2016/12/7.
*/
public
class
LogbackPatternConverterActivation
extends
ClassInstanceMethodsEnhancePluginDefine
{
@Override
protected
String
enhanceClassName
()
{
return
"com.a.eye.skywalking.toolkit.logback.v1.x.LogbackPatternConverter"
;
}
@Override
protected
ConstructorInterceptPoint
[]
getConstructorsInterceptPoints
()
{
return
null
;
}
@Override
protected
InstanceMethodsInterceptPoint
[]
getInstanceMethodsInterceptPoints
()
{
return
new
InstanceMethodsInterceptPoint
[]{
new
InstanceMethodsInterceptPoint
()
{
@Override
public
MethodMatcher
[]
getMethodsMatchers
()
{
return
new
MethodMatcher
[]{
new
SimpleMethodMatcher
(
"convert"
)};
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.logback.v1.x.PrintTraceIdInterceptor"
;
}
}};
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/PrintTraceIdInterceptor.java
0 → 100644
浏览文件 @
15b3add2
package
com.a.eye.skywalking.toolkit.activation.logback.v1.x
;
import
com.a.eye.skywalking.api.Tracing
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
/**
* Created by wusheng on 2016/12/7.
*/
public
class
PrintTraceIdInterceptor
implements
InstanceMethodsAroundInterceptor
{
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
"TID:"
+
Tracing
.
getTraceId
();
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/resources/skywalking-plugin.def
0 → 100644
浏览文件 @
15b3add2
com.a.eye.skywalking.toolkit.activation.logback.v1.x.LogbackPatternConverterActivation
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录