Log4j 是 Apache 的一个开放源代码项目。Log4j 由三个重要组件构成:日志信息的优先级、日志信息的输出目的地、日志信息的输出格式。通过配置 Log4jAppender,您可以控制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等。
本文介绍在不需要修改应用代码的前提下,通过配置一个 yaml 文件,将阿里云容器服务 Kubernetes 集群中产生的日志输出到阿里云日志服务。此外,通过在 Kubernetes 集群上部署一个示例 API 程序,来进行演示。
前提条件
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: log4j-appender-demo-spring-boot
labels:
app: log4j-appender
spec:
replicas: 1
selector:
matchLabels:
app: log4j-appender
template:
metadata:
labels:
app: log4j-appender
spec:
containers:
- name: log4j-appender-demo-spring-boot
image: registry.cn-hangzhou.aliyuncs.com/jaegertracing/log4j-appender-demo-spring-boot:0.0.2
env:
- name: JAVA_OPTS ##注意
value: "-Dproject={your_project} -Dlogstore={your_logstore} -Dendpoint={your_endpoint} -Daccess_key_id={your_access_key_id} -Daccess_key={your_access_key_secret}"
ports:
- containerPort: 8080
其中:
kubectl create -f demo-deployment.yaml
kubectl create -f demo-service.yaml
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
log4j-appender-demo-spring-boot-svc LoadBalancer 172.21.XX.XX 120.55.XXX.XXX 8080:30398/TCP 1h
在本示例中,通过运行login命令来测试生成 Kubernetes 集群日志。其中 K8S_SERVICE_IP 即为 EXTERNAL-IP。
curl http://${K8S_SERVICE_IP}:8080/login?name=bruce
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。