1. 程式人生 > >Log4J配置Syslog單獨輸出、以及配置單獨檔案輸出

Log4J配置Syslog單獨輸出、以及配置單獨檔案輸出

前言:

Log4J在專案中會經常使用,大部分的logger會配置到rootLogger中,這種情況下子Logger 會繼承 父Logger 的appender,也就是說子Logger 會在 父Logger 的appender裡輸出。
但在開發的過程中我們經常會遇到希望Log單獨輸出到某一個日誌檔案。這篇文章將介紹Log4J如何配置Syslog傳送日誌到某個伺服器,以及Log4J如何配置單獨檔案輸出。

一、Log4j配置Syslog單獨輸出:

配置單獨輸出,不需要將Logger加入到rootLogger中,並且需要在logger的配置中新增一句:

#syslog是logger的名字
log4j.additivity.logName=false

log4j.additivity是 子Logger 是否繼承 父Logger 的 輸出源(appender) 的標誌位。設為false,子logger將不會繼承rootLogger的輸出源。

完整的配置:

log4j.logger.syslog=INFO,syslog
log4j.additivity.syslog=false
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.SyslogHost=127.0.0.1
log4j.appender.syslog.Port=514
#log.appender.logFile.encoding=UTF-8 
log4j.appender.syslog.Facility=LOCAL1
log4j.appender.syslog.header=true
log4j.appender.syslog.Threshold=INFO
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%m%n
log4j.appender.syslog.Encoding=UTF-8

這裡將Syslog伺服器的IP和埠號寫死。但在開發中更為常見的是,Syslog伺服器的IP和埠號是自動獲取的,所以下面的寫法更為實用。

log4j.logger.syslog=INFO,syslog
log4j.additivity.syslog=false
#log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog=org.apache.log4j.MYSyslogAppender
#log4j.appender.syslog.SyslogHost=127.0.0.1
#log4j.appender.syslog.Port=
#log.appender.logFile.encoding=UTF-8 
log4j.appender.syslog.Facility=LOCAL1
log4j.appender.syslog.header=true
log4j.appender.syslog.Threshold=INFO
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%m%n
log4j.appender.syslog.Encoding=UTF-8

這裡的org.apache.log4j.ZFSyslogAppenderSyslog4jAppender,在裡面動態獲取Syslog伺服器的IP和埠號。

注意: 此時 log4j.appender.syslog=你重寫類的路徑

import org.productivity.java.syslog4j.impl.log4j.Syslog4jAppender;

public class MYSyslogAppender extends  Syslog4jAppender{
	
	public void setSyslogHost(String syslogHost) {
		super.setHost(syslogHost);
	}
	
	public void setPort(String syslogHost) {
		super.setPort(syslogHost);
		
	}
	public MYSyslogAppender(){
		String hostIP = 動態獲取程式碼(例如從配置檔案中獲取);
		String portstr = 動態獲取程式碼(例如從配置檔案中獲取);
		this.setHost(hostIP);
		this.setPort(portstr);
	}

}

在程式碼中使用時這個logger只需要在程式碼中引入:

private static Logger sysLogger = Logger.getLogger("syslog");

//使用時
sysLogger.info("向Syslog伺服器傳送的資訊");

這樣,就可以 自動向Syslog伺服器傳送內容。

二、Log4J配置單獨檔案輸出:

單獨檔案輸出同樣需要設定:

log4j.additivity.logName=false

這裡貼出一個例子:

# MSY
log4j.logger.zflog=INFO,zflog

log4j.appender.zflog=org.apache.log4j.RollingFileAppender
#log path
log4j.appender.zflog.File=./log/zflog.log
log4j.appender.zflog.MaxFileSize =100MB
log4j.additivity.zflog=false
log4j.appender.zflog.Append=true
log4j.appender.zflog.header=true
log4j.appender.zflog.Threshold=INFO
log4j.appender.zflog.layout=org.apache.log4j.PatternLayout
log4j.appender.zflog.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH\:mm\:ss}%n[%p]-[Thread\: %t]-[%C.%M()]\: %m%n
log4j.appender.zflog.Encoding=UTF-8

同樣使用此Logger也需要在程式碼中引入:

private static Logger zflog = Logger.getLogger("zflog");

zflog.info("想要記錄的內容");

內容就會記錄在你配置的logger日誌中。

OK,看完點贊!

相關推薦

Log4J配置Syslog單獨輸出以及配置單獨檔案輸出

前言: Log4J在專案中會經常使用,大部分的logger會配置到rootLogger中,這種情況下子Logger 會繼承 父Logger 的appender,也就是說子Logger 會在 父Logger 的appender裡輸出。 但在開發的過程中我們經常會

有關推挽輸出開漏輸出復用開漏輸出復用推挽輸出以及上拉輸入下拉輸入浮空輸入模擬輸入區別——(轉載)

應用 以及 連接數 17. 推拉 情況 輸出 floating 補充 最近在看數據手冊的時候,發現在Cortex-M3裏,對於GPIO的配置種類有8種之多: (1)GPIO_Mode_AIN 模擬輸入(2)GPIO_Mode_IN_FLOATING 浮空輸入(3)GPIO_

Django框架(二)—— 基本配置:app註冊模板配置靜態檔案配置資料庫連線配置post和get

app註冊、模板配置、靜態檔案配置、資料庫連線配置post和get 一、app 在Django中,APP可以用以下類比 大學 --------------------專案 計算機學院------------app01 土木學院 ------------ app02 1、app建立 方

vmware安裝centos7配置網絡卡環境配置

vmware安裝centos7、配置網絡卡、環境配置 1、vmware安裝centos虛擬機器參照:https://blog.csdn.net/guo_ridgepole/article/details/78973763 2、無線環境下配置虛擬機器網絡卡 3、CentOS下VMw

同一個電腦配置多個ssh key以及配置完成後git拉取或更新程式碼仍要輸入密碼問題的解決

1.配置多個ssh key以兩個賬號為例:[email protected]對應gitee的遠端倉庫[email protected]對應github的遠端倉庫1.1.在~/.ssh目錄下分別生成兩個賬號的ssh key使用ssh-keygen -t rs

有關上拉輸入下了輸入推輓輸出開漏輸出複用開漏輸出複用推輓輸出以及浮空輸入模擬輸入區別

1、上拉輸入:上拉就是把電位拉高,比如拉到Vcc。上拉就是將不確定的訊號通過一個電阻嵌位在高電平!電阻同時起限流作用!弱強只是上拉電阻的阻值不同,沒有什麼嚴格區分。   2、下拉輸入:就是把電壓拉低,拉到GND。與上拉原理相似。   3、浮空輸入:浮空(float

CDH安裝配置zeppelin-0.7.3以及配置spark查詢hive表

1.下載zeppelin http://zeppelin.apache.org/download.html  我下載的是796MB的那個已經編譯好的,如果需要自己按照環境編譯也可以,但是要很長時間編譯,這個版本包含了很多外掛,我雖然是CDH環境但是這個也可以使用。 2.修改

linux 標準輸出標準錯誤輸出以及shell小技巧

1.Linux常用的有: 1)  標準輸入 stdin  程式碼為0,使用< 或<< 2)  標準輸出 stdout 程式碼為1,使用> 或 >> ,這裡把1給省略了, 3)  標準錯誤輸出 stderr程式碼為2,使用 2> 或2

log4j日誌輸出以及生成日誌檔案

log4j.properties檔案配置如下: log4j.rootLogger=debug,appender,appender1 #如果在本地eclipse控制檯輸出 請解開下面的程式碼 #log4j.appender.appender=org.apache.log

Spring Cloud Alibaba(二) 配置中心多專案配置檔案分目錄實現

介紹 之前Spring Cloud Config基礎篇這篇文章介紹了Spring Cloud Config 配置中心基礎的實現,今天繼續聊下Spring Cloud Config 並結合nacos做服務註冊中心,實現多專案、多配置檔案、按專案目錄劃分等功能的配置服務中心。 閱讀本篇文章之前,最好要有nacos

Linux動態庫.a與動態庫.so的生成與區別以及.so庫檔案的封裝與使用

一、前言 如果有公司需要使用你們產品的一部分功能(通過程式碼呼叫這些功能),如果不想提供原始碼,那麼就可以通過封裝成庫檔案的形式提供給對方使用。本文主要介紹了生成動態庫與靜態庫檔案的過程、以及封裝和使用庫檔案的方法。 二、靜態庫.a與動態庫.so的生成與

Log4j appender輸出類型配置

文件的 back 容量 jpg war div ror att 參數 Log4j官方的appender給出了一下幾種實現 org.apache.log4j.ConsoleAppender(控制臺), org.apache.log4j.FileAppender(文件)

Linux VPS 安全配置:禁用22端口root用戶以及配置Denyhosts防暴力破解

usermod run 主題 工具 wheel mit smt 個人 連不上 最近租用了一臺Vultr東京機房的VPS,每天都會生成許多異常登錄失敗的日誌,疑似受到掃描軟件的暴力破解,遂Google了一下服務器安全防護方面的知識。 廢話不多說,下面將操作過程記錄下來: 註意

(轉)關於Tomcat的點點滴滴(體系架構處理http請求的過程安裝和配置目錄結構設置壓縮和對中文文件名的支持以及Catalina這個名字的由來……等)

https 設置 重啟 specific 調用 持久化數據 所在 original apps 轉自:http://itfish.net/article/41668.html 總結Tomcat的體系架構、處理http請求的過程、安裝和配置、目錄結構、設置壓縮和對中文文件名

Windows上MyEclipse2017 CI7 安裝破解以及配置

內容 ive 下載地址 lips 破解 wrap spa 兩個文件 gin 一、安裝環境與安裝包 操作系統:win7 MyEclipse2017 CI7下載地址:鏈接:https://pan.baidu.com/s/1eSnOEMe 密碼:i208 MyEclipse201

Nginx配置:防盜鏈訪問控制解析PHP以及代理

防盜鏈 訪問控制 Nginx代理 一、Nginx防盜鏈 防盜鏈是指一個網站的資源(圖片或附件)未經允許在其它網站提供瀏覽和下載,尤其熱門資源的盜鏈,對網站帶寬的消耗非常大,設置防盜鏈以節省資源。 1、修改虛擬主機配置文件 [root@zlinux vhost]# vim linuxtest.c

【Java】Maven安裝Eclipse配置以及相關錯誤解決集合

文件 格式 setting BYD cksum runt 文件編碼 原因 完成後 作者嘔血總結,下面寫的每一個錯誤我都遇過 · Maven安裝 · Eclipse配置 · Maven安裝 安裝前請確保已經裝有JDK。 一、 準備Maven程序包 到官網https

Tomcat下載以及安裝eclipse工具配置tomcat9的具體步驟以及注意事項!!!

      (小白經驗,大咖勿噴) 開始學前端的一些技術了,最讓人頭疼的就是環境的配置以及必要軟體的安裝,比如資料庫mysql、伺服器Tomcat、eclipse工具等等。  自己也度娘了很多大咖的經驗,但看到的教程以及經驗都很久了,我下載安裝的又是最新版

【設計經驗】3燒錄QSPI Flash以及配置mcs檔案的載入速度與傳輸位寬

一、軟體與硬體平臺        軟體平臺:               作業系統:Windows 7 64-bit

下載jdk1.8tomcat8.5以及配置環境變數Linux(CentOS7)

前言 系統資訊:CentOS Linux release 7.5.1804 (Core) JDK版本:1.8.0_191 Tomcat版本:Tomcat8.5.34 接下來的操作均是在root許可權下安裝配置,如果使用非root賬戶,涉及許可權要求,請使用sudo命令 JDK