log4j将日志发送到远程日志服务器
2014-09-03 10:57
471 查看
log4j将日志发送到远程日志服务器
应用的jar包:
log4j-1.2.17.jar
客户端:
log4j.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE log4j:configuration SYSTEM "dtd/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE\} %5p %c{1\}:%L - %m%n"/>
</layout>
</appender>
<appender name="remoteFile" class="org.apache.log4j.net.SocketAppender">
<param name="remoteHost" value="localhost" />
<param name="port" value="4712" />
<param name="Threshold" value="INFO" />
<param name="ReconnectionDelay" value="1000" />
<param name="LocationInfo" value="true" />
</appender>
<logger name="testRemote" additivity="false">
<level value="INFO" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="testRemote2" additivity="false">
<level value="INFO" />
<appender-ref ref="remoteFile" />
</logger>
<root>
<level value="error" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
测试类:
Log4JSocketAppenderTest.java
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class Log4JSocketAppenderTest
{
public static void main(String[] args) throws Exception
{
//发送日志记录时间
long runTime = 1000 * 60 * 1;
DOMConfigurator.configure(Log4JSocketAppenderTest.class.getResource("log4j.xml"));
Logger remoteLogger = LogManager.getLogger("testRemote2");
long i = 0;
String sendInfo = "the send info is ";
long old = System.currentTimeMillis();
while (true)
{
System.out.println("send info begin: " + sendInfo + i);
remoteLogger.info(sendInfo + i);
i++;
//每3秒记录一次日志
Thread.sleep(1000 * 3);
long now = System.currentTimeMillis();
if((now - old) > runTime)
{
break;
}
}
}
}
服务端:
应用到的jar包:
log4j-1.2.17.jar
log4j-server.properties:
#Define a narrow log category. A category like debug will produce some extra logs also from server itself
log4j.rootLogger=info, file
#Define how the socket server should store the log events
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=application-error.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n
启动SocketServer服务:
java -classpath D:\log4j-1.2.17.jar org.apache.log4j.net.SimpleSocketServer 4712 D:\log4j-server.properties
方法二:
public class Log4jRomteUtil {
static String remoteHost = "192.168.17.210";
static int port = 4671;
static String Threshold = "INFO";
static int ReconnectionDelay = 1000;
static boolean locationInfo = true;
public static Logger getRomteLogClass(String calzzName) {
SocketAppender sa = new SocketAppender(remoteHost, port);
sa.setThreshold(Level.INFO);
sa.setReconnectionDelay(ReconnectionDelay);
sa.setLocationInfo(locationInfo);
Logger remoteLogger = LogManager.getLogger(calzzName);
remoteLogger.addAppender(sa);
return remoteLogger;
}
}
// 日志打印
org.apache.log4j.Logger remoteLogger = Log4jRomteUtil
.getRomteLogClass("ExchangeOutPointServiceImpl");
方法三:
客户端
在log4j.properties中加入
log4j.properties文件新增配置:
#远程日志
remote.logLevel=FATAL
log4j.category.com....exchange.impl.JpeasExchangeOutPointServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.sendcoupon.EbuySendCouponProcessServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.sendcoupon.YMSendCouponProcessServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.DealMsgExchangeServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.QueryOrderStateServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.TmallPointOrderServiceImpl = ${ remote.logLevel}, remote
log4j.appender.remote=org.apache.log4j.net.SocketAppender
log4j.appender.remote.Port=4672
log4j.appender.remote.RemoteHost=192.168.17.210
log4j.appender.remote.ReconnectionDelay=10000
java类:
private Logger log = Logger.getLogger(EbuySendCouponProcessServiceImpl.class);
log.warn("-------");
服务端:
启动SocketServer服务:
java -classpath D:\log4j-1.2.17.jar org.apache.log4j.net.SimpleSocketServer 4712 D:\log4j-server.properties
应用的jar包:
log4j-1.2.17.jar
客户端:
log4j.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE log4j:configuration SYSTEM "dtd/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE\} %5p %c{1\}:%L - %m%n"/>
</layout>
</appender>
<appender name="remoteFile" class="org.apache.log4j.net.SocketAppender">
<param name="remoteHost" value="localhost" />
<param name="port" value="4712" />
<param name="Threshold" value="INFO" />
<param name="ReconnectionDelay" value="1000" />
<param name="LocationInfo" value="true" />
</appender>
<logger name="testRemote" additivity="false">
<level value="INFO" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="testRemote2" additivity="false">
<level value="INFO" />
<appender-ref ref="remoteFile" />
</logger>
<root>
<level value="error" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
测试类:
Log4JSocketAppenderTest.java
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class Log4JSocketAppenderTest
{
public static void main(String[] args) throws Exception
{
//发送日志记录时间
long runTime = 1000 * 60 * 1;
DOMConfigurator.configure(Log4JSocketAppenderTest.class.getResource("log4j.xml"));
Logger remoteLogger = LogManager.getLogger("testRemote2");
long i = 0;
String sendInfo = "the send info is ";
long old = System.currentTimeMillis();
while (true)
{
System.out.println("send info begin: " + sendInfo + i);
remoteLogger.info(sendInfo + i);
i++;
//每3秒记录一次日志
Thread.sleep(1000 * 3);
long now = System.currentTimeMillis();
if((now - old) > runTime)
{
break;
}
}
}
}
服务端:
应用到的jar包:
log4j-1.2.17.jar
log4j-server.properties:
#Define a narrow log category. A category like debug will produce some extra logs also from server itself
log4j.rootLogger=info, file
#Define how the socket server should store the log events
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=application-error.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n
启动SocketServer服务:
java -classpath D:\log4j-1.2.17.jar org.apache.log4j.net.SimpleSocketServer 4712 D:\log4j-server.properties
方法二:
public class Log4jRomteUtil {
static String remoteHost = "192.168.17.210";
static int port = 4671;
static String Threshold = "INFO";
static int ReconnectionDelay = 1000;
static boolean locationInfo = true;
public static Logger getRomteLogClass(String calzzName) {
SocketAppender sa = new SocketAppender(remoteHost, port);
sa.setThreshold(Level.INFO);
sa.setReconnectionDelay(ReconnectionDelay);
sa.setLocationInfo(locationInfo);
Logger remoteLogger = LogManager.getLogger(calzzName);
remoteLogger.addAppender(sa);
return remoteLogger;
}
}
// 日志打印
org.apache.log4j.Logger remoteLogger = Log4jRomteUtil
.getRomteLogClass("ExchangeOutPointServiceImpl");
方法三:
客户端
在log4j.properties中加入
log4j.properties文件新增配置:
#远程日志
remote.logLevel=FATAL
log4j.category.com....exchange.impl.JpeasExchangeOutPointServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.sendcoupon.EbuySendCouponProcessServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.sendcoupon.YMSendCouponProcessServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.DealMsgExchangeServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.QueryOrderStateServiceImpl = ${ remote.logLevel}, remote
log4j.category.com......impl.TmallPointOrderServiceImpl = ${ remote.logLevel}, remote
log4j.appender.remote=org.apache.log4j.net.SocketAppender
log4j.appender.remote.Port=4672
log4j.appender.remote.RemoteHost=192.168.17.210
log4j.appender.remote.ReconnectionDelay=10000
java类:
private Logger log = Logger.getLogger(EbuySendCouponProcessServiceImpl.class);
log.warn("-------");
服务端:
启动SocketServer服务:
java -classpath D:\log4j-1.2.17.jar org.apache.log4j.net.SimpleSocketServer 4712 D:\log4j-server.properties
相关文章推荐
- log4j使用SocketAppender推送日志到远程服务器(包含log4j如何升级到log4j2,并使用SocketAppender发送日志到LogStash)
- log4j通过SocketAppender将日志内容发送到远程服务器
- log4j通过SocketAppender将日志内容发送到远程服务器
- log4j中将日志发送到远程服务器
- log4j中将日志发送到远程服务器
- log4j中将SocketAppender将日志内容发送到远程服务器
- 用log4j把日志发送到jms服务器
- [置顶] Log4j发送日志到服务器上
- rsyslog日志服务器的配置步骤( 远程发送日志 )
- 日志分析-2.发送windows日志到一个远程的rsyslog服务器上
- 使用log4j发送日志到远程ELK平台
- java日志《三》Log4j日志远程发送
- Linux系统日志记录到远程服务器简单配置
- Linux系统日志记录到远程服务器简单配置
- log4j 日志服务器_项目实际使用日记
- System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)
- linux下实现每天自动发送服务器日志到邮箱(使用sendmail)
- windows2003完善远程登陆终端服务器日志
- Log4j创建日志服务器 解决集群日志问题及话单文件