文档首页/ 函数工作流 FunctionGraph/ 最佳实践/ 功能应用类实践/ 使用FunctionGraph的Java函数配置Log4j2实现日志打印
更新时间: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());

步骤二:创建函数

  1. 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,右上角单击“创建函数”进入创建函数界面。
  2. 选择“创建空白函数”,基本信息配置如下:

    • 函数类型:选择“事件函数”。
    • 区域:根据实际情况选择。
    • 函数名称:自定义。
    • 运行时:选择“Java 8”。

    其他参数保持默认,单击“创建函数”。

  3. 上传函数代码。

    函数创建完成后,进入详情页面,在“代码”页签下选择上传代码 > Zip > 文件,添加步骤一:下载程序包中下载的Zip代码包进行部署。

  4. 开启类隔离。

    成功部署代码包后,如图1所示,选择“设置 > 高级设置”,开启“类隔离”,单击“保存”。
    图1 开启类隔离

  5. 设置函数执行入口。

    图2所示,选择“设置 > 常规设置”,将“函数执行入口”参数设置为:org.example.LogTest.handler,单击“保存”。

    图2 设置函数执行入口

  6. 设置函数初始化入口。

    图3所示,选择“设置 > 生命周期”,开启“初始化配置”,将“函数初始化入口”参数设置为:org.example.LogTest.init,单击“保存”。

    图3 设置函数初始化入口

步骤三:调试函数

  1. 配置完所有参数后,如图4所示,选择“代码”页签,单击“配置测试事件”,默认使用“空白模板”,单击“创建”。

    图4 配置测试事件

  2. 选择创建好的测试事件,单击“测试”,在右侧“执行结果”可查看函数成功打印日志结果。