官方文档已经写得足够详细了,这里只是记录个人的集成过程。
1. 引入依赖
在项目的 pom.xml
中引入如下内容:
<dependency>
<groupId>com.dianping.cat</groupId>
<artifactId>cat-client</artifactId>
<version>2.0.0</version>
</dependency>
将引入如下Jar包:
cat-client-2.0.0.jar
foundation-service-4.0.0.jar
netty-all-4.0.25.Final.jar
gson-1.6.jar
2. 配置domain
在项目的src/main/resources/META-INF
目录下添加名为app.properties
配置文件, 并在其中加入如下内容(其中XXX就是你要为本项目配置的domain名称):
app.name=XXX
3. web.xml
加入如下Filter:
<!-- 该Filter必须放在url-rewrite-filter 之后的第一个 -->
<!-- 如果不是会导致URL的个数无限多,比如search/1/2,search/2/3等等,无法监控,后端存储压力也变大。 -->
<filter>
<filter-name>cat-filter</filter-name>
<filter-class>com.dianping.cat.servlet.CatFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cat-filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
4. CAT工作目录
我们还需要为CAT创建一个工作时目录,用于存放日志和一些运行时生成的配置信息等。
在将要部署到的tomcat,其所在目录的根目录(这里我们假设为E:/
),执行如下命令:
cd E:/
mkdir -p ./data/appdatas/cat
mkdir -p ./data/applogs/cat
注意上面提到的 根目录;在使用Eclipse启动项目时,该根目录则应该是Eclipse的工作目录(使用System.getProperty("user.dir")
获取)
5. 配置文件client.xml
在上面创建的E:/data/appdatas/cat/
目录下,新建一个名为client.xml
文件,并在其中填入如下内容:
<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">
<servers>
<!-- 服务端地址, 端口固定-->
<server ip="127.0.0.1" port="2280" />
</servers>
<!-- 用于关闭CAT消息发送,将enabled改为false,如下表示将mobile-api这个项目关闭 -->
<domain id="mobile-api" enabled="false"/>
</config>
6. 注意事项
其他一些非必要的注意事项就放到这里了。
6.1 struts2
struts会吃掉URL中的ERROR信息,所以我们需要在struts2.xml
文件中加入如下内容:
<constant name="struts.handle.exception" value="false" />
7. 集成
这个不单独成文了,因为官方的文档已经足够了,这里也只是列举一些注意事项。
7.1 Log4j2
这里需要注意的是: 我们需要让Log4j2感知到我们自定义的Appender
。可以参考下这个链接: Log4j2自定义Appender注意事项。
另外以下为来自官方的建议:
1. 所有Log都打到CAT,这样才能更快发现问题。
2. 建议在Root节点中添加次appendar。