log4j+log4j2+logback+syslog+graylog

下面说一下 log4j,log4j2,logback如何将日志写入graylog中

log4j:

<!-- 日志写入graylog中 只记录慢sql日志  慢SQL使用的facility是local1 其他日志请不要使用local1
     Log4j自带的SyslogAppender 只能配置接受syslog日志的主机地址,端口不可配置,使用默认的:514
     pom:
     	<dependency>
		    <groupId>org.syslog4j</groupId>
		    <artifactId>syslog4j</artifactId>
		    <version>0.9.30</version>
		</dependency>
     -->
     <appender name="syslogAppender" class="org.productivity.java.syslog4j.impl.log4j.Syslog4jAppender">
	    <param name="SyslogHost" value="172.16.2.167"/>
	    <param name="Port" value="8888"/><!-- input节点端口 -->
	    <param name="Facility" value="LOCAL1"/>
	    <param name="Protocol" value="UDP"/>
	    <param name="header" value="true"/>
	    <param name="Threshold" value="INFO"/>
	    <layout class="org.apache.log4j.PatternLayout">
	            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\}][%-5p] [%t] [%c:%L]-%m%n"/>
	    </layout>
	</appender>

log4j2:

<?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>

		<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>

maven:

<dependencies>

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.7</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.12</version>
		</dependency>

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>2.7</version>
		</dependency>

		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.1.3</version>
		</dependency>

		<dependency>
			<groupId>com.lmax</groupId>
			<artifactId>disruptor</artifactId>
			<version>3.3.2</version>
		</dependency>
	</dependencies>

logback:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<property name="log.path" value="D:/logtest/logback/asy_50_100000" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
                <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5p] [%t] [%c:%L]-%m%n</pattern>
        </encoder>
    </appender>

	<!--文件输出的格式设置 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志日常打印文件 -->
        <file>${log.path}/log_test.log</file>
        <!-- 配置日志所生成的目录以及生成文件名的规则 在logs/mylog-2017-06-31.0.log.zip -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/log_test-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!--文件达到 最大128MB时会被压缩和切割 -->
                <maxFileSize>100 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <!-- 文件输出的日志 的格式 -->
        <encoder>
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss}][%-5p] [%t] [%c:%L]-%m%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>

    <appender name="bizSyslogAppender" class="ch.qos.logback.classic.net.SyslogAppender">
		<syslogHost>172.16.2.167</syslogHost>
		<port>3333</port>
		<facility>LOCAL0</facility>
		<suffixPattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5p] [%t] [%c:%L]-%m%n%xException</suffixPattern>
	</appender>

	<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"><!--配置异步打印info信息-->
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
	    <discardingThreshold>0</discardingThreshold>
	    <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
	    <queueSize>256</queueSize>
        <appender-ref ref="bizSyslogAppender" />
    </appender>


    <root level="debug"><!--指定所有要执行的appender-->
<!--         <appender-ref ref="STDOUT" /> -->
        <appender-ref ref="ASYNC" />
<!--        <appender-ref ref="bizSyslogAppender" /> -->
    </root>

</configuration>

maven:

<dependencies>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.12</version>
		</dependency>

		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.1.3</version>
		</dependency>

		<dependency>
			<groupId>com.lmax</groupId>
			<artifactId>disruptor</artifactId>
			<version>3.3.2</version>
		</dependency>
	</dependencies>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值