更新时间:2025-07-01 GMT+08:00
使用FunctionGraph的Java函数配置Log4j2实现日志打印
案例概述
函数工作流服务支持Java函数配置log4j2,本章节将介绍如何使用函数和log4j2的能力实现日志打印。
步骤一:下载程序包
本例使用Java语言实现日志打印,请下载Log_demo.jar样例代码直接使用,无需其他修改。
关键示例代码如下所示,可参考了解。
package org.example; import com.huawei.services.runtime.Context; import lombok.extern.slf4j.Slf4j; import org.apache.logging.log4j.core.config.Configurator; import org.apache.logging.log4j.util.LoaderUtil; import java.net.URISyntaxException; import java.util.Objects; @Slf4j public class LogTest { public void init(Context context) { try { Configurator.reconfigure(Objects.requireNonNull(LoaderUtil.getThreadContextClassLoader().getResource("log4j2-custom.xml")).toURI()); } catch (URISyntaxException e) { throw new RuntimeException(e); } } public void handler(String event, Context context) { log.debug("debug log"); log.info("info log"); log.warn("warn log"); log.error("info log"); } }
其中初始化入口添加了如下代码:
Configurator.reconfigure(Objects.requireNonNull(LoaderUtil.getThreadContextClassLoader().getResource("log4j2-custom.xml")).toURI());
步骤二:创建函数
- 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,右上角单击“创建函数”进入创建函数界面。
- 选择“创建空白函数”,基本信息配置如下:
- 函数类型:选择“事件函数”。
- 区域:根据实际情况选择。
- 函数名称:自定义。
- 运行时:选择“Java 8”。
其他参数保持默认,单击“创建函数”。
- 上传函数代码。
函数创建完成后,进入详情页面,在“代码”页签下选择 ,添加步骤一:下载程序包中下载的Zip代码包进行部署。
- 开启类隔离。
成功部署代码包后,如图1所示,选择“设置 > 高级设置”,开启“类隔离”,单击“保存”。
- 设置函数执行入口。
如图2所示,选择“设置 > 常规设置”,将“函数执行入口”参数设置为:org.example.LogTest.handler,单击“保存”。
- 设置函数初始化入口。
如图3所示,选择“设置 > 生命周期”,开启“初始化配置”,将“函数初始化入口”参数设置为:org.example.LogTest.init,单击“保存”。
步骤三:调试函数
- 配置完所有参数后,如图4所示,选择“代码”页签,单击“配置测试事件”,默认使用“空白模板”,单击“创建”。
- 选择创建好的测试事件,单击“测试”,在右侧“执行结果”可查看函数成功打印日志结果。