1. 服务端
配置文件log4j-server.properties, 其中的[%X{ip}]是自定义的客户端ip,稍后在客户端那给出输入的方法
#socket的日志 log4j.logger.org.apache.log4j=ERROR,file #下面这个开头必须和客户端一致 log4j.logger.com.test=DEBUG,testA log4j.logger.com.product=DEBUG,productA #Define how the socket server should store the log events log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=logs/socket.log log4j.appender.file.encoding=UTF-8 log4j.appender.file.Append=true log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%X{ip}][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%C : %M : %L]:%m%n log4j.appender.testA=org.apache.log4j.DailyRollingFileAppender log4j.appender.testA.File=logs/testA.log log4j.appender.testA.encoding=UTF-8 log4j.appender.testA.Append=true log4j.appender.testA.layout=org.apache.log4j.PatternLayout log4j.appender.testA.layout.ConversionPattern=[%X{ip}][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%C : %M : %L]:%m%n log4j.appender.productA=org.apache.log4j.DailyRollingFileAppender log4j.appender.productA.File=logs/productA.log log4j.appender.productA.encoding=UTF-8 log4j.appender.productA.Append=true log4j.appender.productA.layout=org.apache.log4j.PatternLayout log4j.appender.productA.layout.ConversionPattern=[%X{ip}][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%C : %M : %L]:%m%n
启动- 端口9898
java -classpath log4j-1.2.16.jar org.apache.log4j.net.SimpleSocketServer 9898 log4j-server.properties
后台启动
nohup java -classpath log4j-1.2.16.jar org.apache.log4j.net.SimpleSocketServer 9898 log4j-server.properties 2>&1 &
2.客户端
配置log4j.properties
#可以多个append,本地加远程 log4j.logger.com.test=DEBUG,localTestA,socket log4j.logger.com.prodcut=DEBUG,localProductA,socket log4j.appender.socket=org.apache.log4j.net.SocketAppender log4j.appender.socket.Port=9898 log4j.appender.socket.RemoteHost=192.168.0.1 log4j.appender.socket.ReconnectionDelay=10000
代码,在应用启动的地方,写入本机ip参数
try { MDC.put("ip", InetAddress.getLocalHost().getHostAddress().toString()); } catch (UnknownHostException e) { log.error("获取本机ip失败"); }
3. 完成,愉快的查看日志吧
相关推荐
总的来说,通过Kafka和Log4j的结合,我们可以构建一个高效、可扩展的日志管理系统,不仅能够实时收集应用程序的日志,还可以进行日志分析、监控和报警,对于故障排查和性能优化具有极大的帮助。同时,这样的设计也...
Kafka的特点包括高吞吐量、持久化存储、分区和复制,这使得它在日志收集、实时数据处理和流数据应用中非常受欢迎。 其次,我们来看`Log4j`。Log4j是Apache的一个开源项目,它为Java应用程序提供了一个强大的日志...
本文将详细探讨如何使用Flume、Kafka和log4j构建一个高效的日志采集系统,帮助你理解这三个组件在日志处理中的角色以及如何协同工作。 首先,让我们了解一下这三个工具的基本概念: 1. **Flume**: Apache Flume 是...
### Kafka与Storm在日志收集解决方案中的应用 #### 一、Kafka简介及安装 Apache Kafka是一种分布式的、基于发布/订阅模式的消息系统,它能够处理大量的实时数据流。Kafka因其高性能、高吞吐量以及低延迟等特点,在...
#### 四、Log4j——日志记录工具 - **定义与用途**:Log4j 是一个开源的日志记录工具,主要用于 Java 应用程序。它允许开发者控制日志信息的级别(如 ERROR、WARNING、INFO 等),以及日志信息的输出方式(如控制台...
捕获阶段,系统通过在各个应用服务器上部署日志代理,如Log4j、Logback等,收集应用产生的日志。传输阶段,使用如Fluentd或Logstash等工具将日志数据发送到Storm集群。解析阶段,Storm的 bolts 对日志数据进行结构化...
其中,使用Log4j、LogBack等埋点工具以及SDK/Producer可以实现更细粒度的控制。 Kubernetes日志采集面临诸多挑战,包括多环境动态性、使用负担、服务动态迁移、缺乏中心化配置管理、多种日志格式、集群动态伸缩以及...
对于大型Hadoop集群,日志分析工具如Flume、Sentry、Logstash和Elasticsearch等可以帮助自动化日志收集、处理和搜索,提供更高效的日志管理方案。此外,Hadoop社区还开发了一些专门用于Hadoop日志分析的工具,如...
1. **日志采集**:在每个产生日志的节点上,我们需要一个轻量级的日志代理(如Log4j、Logback等),它负责收集本地的日志事件,并通过Socket发送到中央日志服务器。 2. **Socket通信**:日志代理和日志服务器之间的...
总结,了解和掌握Zookeeper的启动状态判断以及Log4j日志分析技巧,对于管理和维护Zookeeper集群至关重要。这不仅可以帮助我们快速识别和解决问题,也能提高系统的稳定性和可靠性。通过深入理解和实践,我们可以更好...
默认情况下,Storm 集群使用 Log4j 这一流行的日志记录框架来收集和存储 topology 的日志信息,这些日志会被定期存档到 Azure Blob Storage 中。然而,为了适应不同的需求,用户可能希望自定义日志文件的大小和保留...
Log4j是Java中广泛使用的日志库,Logstash可以通过使用grok过滤器解析Log4j的日志格式,提取出有意义的信息,然后将其发送到指定的输出。 4. **logstash-els.conf**:这个名字可能指的是Elasticsearch(ELS)。...
`Client-extension`使用Meta作为Log4j的日志收集器,这样可以通过透明的方式使用Log4j API,方便地将日志发送到Meta系统。 4. **服务端工程**(Server):服务端是提供计算和存储资源的一方,处理客户端请求并返回...
4. **日志监控**:通过Log4j或Logback配置,将Kafka的日志输出到集中式日志系统,如Logstash、Fluentd,配合Elasticsearch、Grafana等进行分析和展示。 **4. 实战应用** 在实际应用中,Kafka常与其他技术结合,如...
4. **日志收集**:系统可能使用如Logback或Log4j等日志框架,它们提供API用于记录应用程序的日志。日志信息会被配置为发送到Kafka的特定主题。 5. **Kafka Producer**:在Spring Boot应用中,Kafka生产者负责将日志...
这通常通过Log4j等日志框架实现,将日志数据发送到中央日志服务器。 2. 数据预处理:收集到的日志数据往往包含噪声和不一致性,因此需要进行清洗和转换。Spark的DataFrame和Dataset API非常适合进行数据预处理,如...
2. Log4j 的日志级别 3. Log4j 的 Appender 配置 机器学习 1. 机器学习算法(选择一种简述其原理) 2. 新浪网站和头条的新闻推荐算法分析 其他 1. JVM 的参数调整(Xss、Xmx) 2. JVM 的垃圾收集器(CMS、G1等)...
2. `log4j`:这是一个日志解析插件,用于接收 Log4j 格式的日志数据。它被配置为服务器模式,监听在所有网络接口(0.0.0.0)的端口 4560 上。`type` 参数用于标识输入数据的类型,这里设置为 "log4j"。 输出部分...