`
tianzhihehe
  • 浏览: 20449 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

log4j2 property 配置问题

 
阅读更多

由于要把logback框架升级到log4j2,把配置改了一遍。发现property属性总是配置失败。跟踪了代码,发现log4j2的小伙砸写的代码有问题。但不知道其他人的配置为什么能工作。

logback配置

<property name="LICAI_LOG_HOME" value="/data/logs/tomcat/licaiweb" />

 

 

先上正确的log4j2配置

 

<Properties>
    <Property name="LICAI_LOG_HOME">
    <![CDATA[/data/logs/tomcat/licaiweb]]>
        </Property>
</Properties>

 

 跟踪代码发现了问题。

private void constructHierarchy(final Node node, final Element element) {
        processAttributes(node, element);
        final StringBuilder buffer = new StringBuilder();
        final NodeList list = element.getChildNodes();
        final List<Node> children = node.getChildren();
        for (int i = 0; i < list.getLength(); i++) {
            final org.w3c.dom.Node w3cNode = list.item(i);
            if (w3cNode instanceof Element) {
                final Element child = (Element) w3cNode;
                final String name = getType(child);
                final PluginType<?> type = pluginManager.getPluginType(name);
                final Node childNode = new Node(node, name, type);
                constructHierarchy(childNode, child);
                if (type == null) {
                    final String value = childNode.getValue();
                    if (!childNode.hasChildren() && value != null) {
                        node.getAttributes().put(name, value);
                    } else {
                        status.add(new Status(name, element, ErrorType.CLASS_NOT_FOUND));
                    }
                } else {
                    children.add(childNode);
                }
            } else if (w3cNode instanceof Text) {
                final Text data = (Text) w3cNode;
                buffer.append(data.getData());
            }
        }

//property没有子元素的时候,value="",非null
        final String text = buffer.toString().trim();
        if (text.length() > 0 || (!node.hasChildren() && !node.isRoot())) {
            node.setValue(text);
        }
    }

 

public class PluginValueVisitor extends AbstractPluginVisitor<PluginValue> {
    public PluginValueVisitor() {
        super(PluginValue.class);
    }

    @Override
    public Object visit(final Configuration configuration, final Node node, final LogEvent event,
                        final StringBuilder log) {
        final String name = this.annotation.value();
//发现value非null,就返回原来的value了,即""
        final String rawValue = node.getValue() != null ? node.getValue() :
            removeAttributeValue(node.getAttributes(), "value");
        final String value = this.substitutor.replace(event, rawValue);
        StringBuilders.appendKeyDqValue(log, name, value);
        return value;
    }
}

 

分享到:
评论

相关推荐

    log4j中配置日志文件相对路径方法分析

    这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。 方法二、 可以使用服务器环境变量 log4j的配置文件支持服务器的vm的...

    log4j中配置日志文件相对路径方法(PDF)

    本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助

    java-property-file-and-log4j-logging-examples:使用log4j的Java属性文件示例和日志记录示例

    java-property-file-and-log4j-记录示例 用于读取.properties文件的可插拔Java Web应用程序插件 项目1:读取属性文件 建议不要在.java文件中存储服务器配置,例如数据库用户名,数据库密码,数据库IP地址,其他服务...

    springmvcdemo

    下载之后您只需要1.根据实体类创建数据库 2.jdbc.property填写正确 3.项目加载 运行 这里你将学习到: 前台: 公共类库 Juqery 公共组件 表格:jqueryeasyui datagrid ...11 利用log4j输出程序日志 12 无刷新翻页

    JAVA Spring框架实现登陆查询 完整搭建框架方法的word文档 包含mysql文件

    3.3 log4j.properties 日志文件 不用修改 3.4 修改spring-mvc 文件 .1 修改controller包的自动扫描注解,如图 2 定义jsp文件存放的路径 &lt;property name="prefix" value="/jsp/" /&gt; 如图 3.5修改spring-mabtis...

    java微信公众号MVC开发框架

    如果没有配置encodingAESKey,那么是不能处理加密消息的,如果有log4j的配置文件,启动阶段会给出告警信息的。 同一个公众号可以配置多个@Weixin注解控制器类,其中只需要一个有其他4项配置就可以了,如果多个控制...

    springboot参考指南

    使用YAML或JSON配置Log4j2 vi. 67. 数据访问 i. 67.1. 配置一个数据源 ii. 67.2. 配置两个数据源 iii. 67.3. 使用Spring Data仓库 iv. 67.4. 从Spring配置分离@Entity定义 v. 67.5. 配置JPA属性 vi. 67.6. 使用...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    ssh(structs,spring,hibernate)框架中的上传下载

     代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. 4. destroy-method="close"> 5. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 6. <property ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    ibatis 开发指南(pdf)

    在 CLASSPATH 中新建log4j.properties 配置文件,内容如下: log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log...

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用...在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的配置文件外,我们需要在 JSP 头的位置声明对 JPivot 标签库的引用,引用方法如下: ...

    Maven权威指南 很精典的学习教程,比ANT更好用

    Property References in Assembly Descriptors 12.4.2. Required Assembly Information 12.5. Controlling the Contents of an Assembly 12.5.1. Files Section 12.5.2. FileSets Section 12.5.3. Default ...

    代码自动生成generator-demo.zip

    日志的log4j的jar包导入。 图片3.png (2) 然后选中导入所有的jar包,然后右击,选中Add as lib..,然后在 level 选项 中选择Project Library,这就完成了相关自动生成代码的包的导入。 图片4.png (3) ...

    ant1.9资源

    ,Amigo" file="logs/system.log" append="true"&gt; 四. 利用Ant构建和部署Java工程 Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。 1. ...

    梦想新闻发布系统-正式版

    |-------|-------|--|--dom4j.jar eWebEditor编辑器自带的类 |-------|-------|--|--DreamNews.jar 本系统所使用的类文件 |-------|-------|--|--MYSQL-Driver.jar 本系统附带的MYSQL驱动程序 |-------|-------|--|-...

    基于MyEclipse搭建maven+springmvc整合图文教程(含源码0

    -- Spring的log4j监听器 --&gt; &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener &lt;!-- 字符集 过滤器 --&gt; &lt;filter-name&gt;CharacterEncodingFilter &lt;filter-class&gt;org.springframework....

Global site tag (gtag.js) - Google Analytics