业务背景
最近在公司搞一个需求,这个需求是采集网络设备的cpu利用率和内存利用率。其中一种网络设备由于比较大,昂贵,可测试的环境不多。运维的人好不容易给我找了一个测试环境,可是页面上却出现了问题,显示设备的利用率一直为0。
这很显然,有问题!最头疼的是程序在测试服务器上,不在本地,不能打断点,只能依靠log来定位问题。由于公司的环境配置的有Log日志,但是我要具体配置哪个类来输出日志。于是新手程序员的我,小小的脑袋、大大的问号???
问题解决
log4j基本知识自己了解去,至于级别,也自己了解去。开始上干货。一般在公司项目中,部署项目的时候,不是把项目简单打个包就行了。运维需要的是一键式安装。至于封装的话,自己看,就像乒乓球一样,能推给运维就推给运维。
一般项目的代码war包会在App目录下,这个看你的公司把这个目录放哪了。默认是在tomcat里的。而配置文件也默认在tomcat里的。但是我们公司就单独把它去了出来。另外设置的一个项目名.log文件用来记录项目运行的日志输出。这里,想要把log4j的日志输出到指定的log文件,就需要以下配置。文件名配置好后,还要在**<loggers>
**标签里配置具体想要查看的类,类的级别要设定好,要把你类里面的log语句能输出出来。
好了以上就是解决方法,这里记录一下,方便下次遇到同样的问题去查看解决。
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF" monitorInterval="5" >
<appenders>
<RollingFile name="RollingFile" fileName="${logPath}/zzuli.log" filePattern="${logPath}/$${date:yyyy-MM}/zzuli-%d{MM-dd-yyyy}-%i.log">
<PatternLayout charset="UTF-8" pattern="%-d{yyyy-MM-dd HH:mm:ss} [%c-%p : %t] %m%n"/>
<SizeBasedTriggeringPolicy size="3MB"/>
<DefaultRolloverStrategy max="10000">
<Delete basePath="${logPath}" maxDepth="2">
<IfFileName glob="*/zzuli-*.log" />
<IfLastModified age="90d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss} [%c-%p : %t] %m%n"/>
</Console>
</appenders>
<loggers>
<logger name="edu.zzuli.test.testServerImpl" level="DEBUG" additivity="false">
<appender-ref ref="RollingFile"/>
</logger>
<logger name="edu.zzuli.test.SystemStart" level="INFO" additivity="false">
<appender-ref ref="RollingFile"/>
</logger>
<root level="ERROR">
<appender-ref ref="RollingFile"/>
</root>
</loggers>
</configuration>