log4j+log4j2+logback+syslog+graylog

來源:互聯網
上載者:User
下面說一下 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>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.