001/**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 * 
010 *      http://www.apache.org/licenses/LICENSE-2.0
011 * 
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.oozie.util;
019
020import org.apache.oozie.BundleJobBean;
021import org.apache.oozie.CoordinatorActionBean;
022import org.apache.oozie.CoordinatorJobBean;
023import org.apache.oozie.WorkflowActionBean;
024import org.apache.oozie.WorkflowJobBean;
025import org.apache.oozie.service.DagXLogInfoService;
026import org.apache.oozie.service.XLogService;
027
028/**
029 * logging utilities.
030 */
031public class LogUtils {
032
033    /**
034     * Set the log info with the context of the given coordinator bean.
035     *
036     * @param cBean coordinator bean.
037     * @param logInfo log info
038     */
039    public static void setLogInfo(CoordinatorJobBean cBean, XLog.Info logInfo) {
040        if (logInfo.getParameter(XLogService.GROUP) == null) {
041            logInfo.setParameter(XLogService.GROUP, cBean.getGroup());
042        }
043        if (logInfo.getParameter(XLogService.USER) == null) {
044            logInfo.setParameter(XLogService.USER, cBean.getUser());
045        }
046        logInfo.setParameter(DagXLogInfoService.JOB, cBean.getId());
047        logInfo.setParameter(DagXLogInfoService.TOKEN, "");
048        logInfo.setParameter(DagXLogInfoService.APP, cBean.getAppName());
049        XLog.Info.get().setParameters(logInfo);
050    }
051
052    /**
053     * Set the log info with the context of the given coordinator action bean.
054     *
055     * @param action action bean.
056     * @param logInfo log info
057     */
058    public static void setLogInfo(CoordinatorActionBean action, XLog.Info logInfo) {
059        logInfo.setParameter(DagXLogInfoService.JOB, action.getJobId());
060        logInfo.setParameter(DagXLogInfoService.ACTION, action.getId());
061        XLog.Info.get().setParameters(logInfo);
062    }
063
064    /**
065     * Set the log info with the context of the given workflow bean.
066     *
067     * @param workflow workflow bean.
068     * @param logInfo log info
069     */
070    public static void setLogInfo(WorkflowJobBean workflow, XLog.Info logInfo) {
071        logInfo.setParameter(XLogService.GROUP, workflow.getGroup());
072        logInfo.setParameter(XLogService.USER, workflow.getUser());
073        logInfo.setParameter(DagXLogInfoService.JOB, workflow.getId());
074        logInfo.setParameter(DagXLogInfoService.TOKEN, workflow.getLogToken());
075        logInfo.setParameter(DagXLogInfoService.APP, workflow.getAppName());
076        XLog.Info.get().setParameters(logInfo);
077    }
078
079    /**
080     * Set the log info with the context of the given action bean.
081     *
082     * @param action action bean.
083     * @param logInfo log info
084     */
085    public static void setLogInfo(WorkflowActionBean action, XLog.Info logInfo) {
086        logInfo.setParameter(DagXLogInfoService.JOB, action.getJobId());
087        logInfo.setParameter(DagXLogInfoService.TOKEN, action.getLogToken());
088        logInfo.setParameter(DagXLogInfoService.ACTION, action.getId());
089        XLog.Info.get().setParameters(logInfo);
090    }
091
092    /**
093     * Set the log info with the context of the given bundle bean.
094     *
095     * @param bBean bundle bean.
096     * @param logInfo log info
097     */
098    public static void setLogInfo(BundleJobBean bBean, XLog.Info logInfo) {
099        if (logInfo.getParameter(XLogService.GROUP) == null) {
100            logInfo.setParameter(XLogService.GROUP, bBean.getGroup());
101        }
102        if (logInfo.getParameter(XLogService.USER) == null) {
103            logInfo.setParameter(XLogService.USER, bBean.getUser());
104        }
105        logInfo.setParameter(DagXLogInfoService.JOB, bBean.getId());
106        logInfo.setParameter(DagXLogInfoService.TOKEN, "");
107        logInfo.setParameter(DagXLogInfoService.APP, bBean.getAppName());
108        XLog.Info.get().setParameters(logInfo);
109    }
110
111    /**
112     * Set the thread local log info with the context of the given Info object.
113     *
114     * @param logInfo log info
115     */
116    public static void setLogInfo(XLog.Info logInfo) {
117        XLog.Info.get().setParameters(logInfo);
118    }
119
120}