ConfigWebAdmin.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:Lucee4 作者:
public void updateLogSettings(String name, Level level, String appenderClassName, Struct appenderArgs, String layoutClassName, Struct layoutArgs) throws PageException {
    checkWriteAccess();
    // TODO
    //boolean hasAccess=ConfigWebUtil.hasAccess(config,SecurityManagerImpl.TYPE_GATEWAY);
       // if(!hasAccess) throw new SecurityException("no access to update gateway entry");

       // check parameters
    name=name.trim();
    if(StringUtil.isEmpty(name))
           throw new ApplicationException("name can't be a empty value");

    if(StringUtil.isEmpty(appenderClassName))
        throw new ExpressionException("you must define appender class name");
    if(StringUtil.isEmpty(layoutClassName))
        throw new ExpressionException("you must define layout class name");

       try {
        ClassUtil.loadClass(appenderClassName);
        ClassUtil.loadClass(layoutClassName);

    }
       catch (ClassException e) {
           throw Caster.toPageException(e);
    }

       Element parent=_getRootElement("logging");

       // Update
       Element[] children = ConfigWebFactory.getChildren(parent,"logger");
       Element el=null;
        for(int i=0;i<children.length;i++) {
            String n=children[i].getAttribute("name");
            if(name.equalsIgnoreCase(n)) {
                el=children[i];
                break;
            }

        }
        // Insert
        if(el==null) {
        el=doc.createElement("logger");
        parent.appendChild(el);
        el.setAttribute("name",name);
        }

        // appender
        if(appenderClassName.equals(ConsoleAppender.class.getName())) appenderClassName="console";
        if(appenderClassName.equals(RollingResourceAppender.class.getName())) appenderClassName="resource";
        // layout
        if(layoutClassName.equals(PatternLayout.class.getName())) layoutClassName="pattern";
        if(layoutClassName.equals(ClassicLayout.class.getName())) layoutClassName="classic";
        if(layoutClassName.equals(HTMLLayout.class.getName())) layoutClassName="html";
        if(layoutClassName.equals(XMLLayout.class.getName())) layoutClassName="xml";

        el.setAttribute("level",level.toString());
        el.setAttribute("appender",appenderClassName);
        el.setAttribute("appender-arguments",toStringCSSStyle(appenderArgs));
    el.setAttribute("layout",layoutClassName);
    el.setAttribute("layout-arguments",toStringCSSStyle(layoutArgs));
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号