您的位置:首页 > 产品设计 > UI/UE

log4j日志替换成log4j2日志和集成graylog

2018-02-12 14:45 1206 查看
公司现在的日志是使用的log4j记录的,代码中使用的是sl4j这种日志切面.  运维那边 弄了个graylog日志才加系统,现在需要将日志记录到graylog中和将log4j日志改成log4j2,具体方法如下;
注意:这只是要修改的部分,不是完整版
maven配置    <!-- druid监控sql版本,高版本的才支持log4j2 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.6</version>
     </dependency>
     <!-- Logging -->
<dependency>
        <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
        <version>2.5</version>
    </dependency>
<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-web</artifactId>
        <version>2.5</version>
<scope>runtime</scope>
    </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.5</version>
        </dependency>web.xml配置        <context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j2.xml</param-value>
</context-param>
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>log4j2.xml配置<?xml version="1.0" encoding="UTF-8"?>
<!-- 优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL -->
<!-- status用来指定log4j本身的打印日志的级别.
monitorinterval用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s.
-->
<Configuration strict="true">
<Properties>
<Property name="logbasedir">D:/ttpai_boss_log</Property>
<Property name="APPNAME">log_test</Property>
<Property name="log.layout">[%d{yyyy-MM-dd HH:mm:ss}][%-5p] [%t] [%c:%L]-%m%n</Property>
</Properties>

<!--此处使用了两种类型的appender,RollingFile为滚动类型,满足策略条件后会新建文件夹记录 -->
<Appenders>
<Appender type="Console" name="STDOUT">
<Target>SYSTEM_OUT</Target>
<Layout type="PatternLayout" pattern="${log.layout}"/>
</Appender>

<RollingFile name="FILE" fileName="${logbasedir}/${APPNAME}.log"
filePattern = "${logbasedir}/${APPNAME}-%d{yyyy-MM-dd}.%i.log">
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/><!-- 默认值是7 -->
<Layout type="PatternLayout">
<Charset>UTF-8</Charset>
<Pattern>${log.layout}</Pattern>
</Layout>
</RollingFile>
                <!--这么配置打印到graylog中的格式是自定义的 host:graylog的主机ip port:graylog input的端口 -->
<Socket name="syslog" host="172.16.2.167" port="2222" protocol="UDP">
<PatternLayout
pattern="${log.layout}" />
</Socket>

</Appenders>

<Loggers>

<Logger name="com.alibaba.druid.filter.stat.StatFilter" level="debug" additivity="false"> -->
<appender-ref ref="FILE"/>
<!-- <AppenderRef ref="syslog"/> -->
<AppenderRef ref="STDOUT"/>
</Logger>

<!-- <asyncRoot level="debug" includeLocation="true" additivity="false"> -->
<!-- <AppenderRef ref="STDOUT"/> -->
<!-- <AppenderRef ref="FILE"/> -->
<!-- <AppenderRef ref="syslog"/> -->
<!-- </asyncRoot> -->

<Root level="debug">
<!-- <AppenderRef ref="STDOUT"/> -->
<!-- <AppenderRef ref="FILE"/> -->
<!-- <AppenderRef ref="syslog"/> -->
</Root>
</Loggers>

</Configuration>druid.xml <bean id="druidStatFilter" class="com.alibaba.druid.filter.stat.StatFilter">
<property name="slowSqlMillis" value="1"/>
<property name="logSlowSql" value="true"/>
<property name="mergeSql" value="true"/>
</bean>
<bean id="druidLogFilter" class="com.alibaba.druid.filter.logging.Log4j2Filter">
<property name="resultSetLogEnabled" value="false"/>
<property name="statementExecutableSqlLogEnable" value="true"/>
</bean>
<!-- dataSource配置 ,采用阿里的Druid -->
<bean id="abstractDruidDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close" abstract="true">

<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${boss.jdbc.initialSize}"/>
<property name="minIdle" value="${boss.jdbc.minIdle}"/>
<property name="maxActive" value="${boss.jdbc.maxActive}"/>

<!-- 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 -->
<property name="maxWait" value="${boss.jdbc.maxWait}"/>

<!-- 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。 -->
<property name="validationQuery" value="${boss.jdbc.validationQuery}"/>

<property name="testWhileIdle" value="${boss.jdbc.testWhileIdle}"/>
<property name="testOnBorrow" value="${boss.jdbc.testOnBorrow}"/>
<property name="testOnReturn" value="${boss.jdbc.testOnReturn}"/>

<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${boss.jdbc.timeBetweenEvictionRunsMillis}"/>
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="${boss.jdbc.minEvictableIdleTimeMillis}"/>

<!-- 配置监控统计拦截的filters 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat
日志用的filter:log4j 防御sql注入的filter:wall -->
<property name="proxyFilters">
<list>
<ref bean="druidStatFilter"/>
<ref bean="druidLogFilter"/>
<!--                 <ref bean="druidWallFilter"/> -->
</list>
</property>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  log4j2 log4j graylog druid
相关文章推荐