Attribute View

本文介绍了AttributeView的配置细节,包括如何通过设置HierarchyActive属性来控制哪些字段在Excel中显示;层级属性仅通过MDX在Excel中可见;TimeAttributeView的概念;派生AttributeView的使用方式及其限制;以及AttributeView的复用特性。

1. 如果attribute view 通过Excel 表示的时候,只显示那些主键属性,以及hierarchy active设置为true的非主键属性。

  如果希望非主键的属性显示,必须将其hierarchy active设置为true.

Each attribute in the list of output fields has among its properties a setting "Hierarchy Active“.

This setting defaults to "false“. If set to “false” the attribute will only show up in Excel (via MDX) if it is a key field of the attribute view

 

2. 层次属性只有通过mdx在excel中显示时才有效。

Hierarchies are only accessible via MDX.

 

3. Time attribute view

 

4 The derived attribute view is read only mode, the only editable field is its description. The derived attribute view will act as a reference to its base attribute view.

5. Attribute views are reusable objects. So one attribute view can be shared between several Analytical Views.

 

转载于:https://www.cnblogs.com/grantliu/p/4094036.html

<think> 我们之前使用了IntelliJ IDEA中的“Shorten command line”方法(设置为JAR manifest或classpath file)来解决命令行过长的问题。 现在用户反馈在使用第一种方法后出现了新的日志错误,主要涉及: - Posix file attribute view not valid(POSIX文件属性视图无效) - Null object returned for PosixViewAttribute(在DefaultRolloverStrategy中返回了空对象) - FileSize unable to parse bytes: ${sys:every_file_size}(无法解析文件大小,使用了系统属性变量${sys:every_file_size}) 这些错误看起来与日志配置有关,特别是使用Log4j2时可能出现的配置问题。具体分析如下: 1. **POSIX文件属性视图无效**:这个错误通常发生在非Unix/Linux系统上(比如Windows),因为POSIX属性(如文件权限、用户、组)在Windows上不被支持。当日志配置尝试使用POSIX属性时,就会报错。这可能是因为日志滚动策略(RolloverStrategy)中配置了基于POSIX的属性。 2. **FileSize无法解析${sys:every_file_size}**:这个错误表明在日志配置中有一个变量引用`${sys:every_file_size}`,但系统属性`every_file_size`没有被定义。Log4j2在解析该变量时失败,导致无法计算文件大小。 解决方案: **针对POSIX属性错误**: - 检查日志配置文件(如`log4j2.xml`或`log4j2.properties`),查找是否使用了`<DefaultRolloverStrategy>`并且其中包含了`PosixViewAttribute`相关的配置。如果是,考虑将其移除或替换为与平台无关的配置。 - 或者,在非Unix系统上,避免使用POSIX相关的配置。例如,在`DefaultRolloverStrategy`中,不要设置`filePermissions`、`fileOwner`、`fileGroup`等属性。 **针对FileSize解析错误**: - 检查日志配置中是否有使用`${sys:every_file_size}`的地方。这个系统属性需要在启动应用时通过JVM参数定义,例如:`-Devery_file_size=10MB`。 - 如果这个属性不是必需的,可以考虑在日志配置中删除它,或者给它一个默认值。在Log4j2中,可以使用默认值语法:`${sys:every_file_size:-10MB}`(表示如果系统属性不存在,则使用默认值10MB)。 具体步骤: 1. **找到日志配置文件**:在Spring Boot项目中,通常是`src/main/resources/log4j2.xml`(如果使用Log4j2)或`application.properties`中配置日志。 2. **修改日志配置**: 示例:在`log4j2.xml`中,查找类似如下配置: ```xml <DefaultRolloverStrategy> <!-- 如果有filePermissions、fileOwner等属性,删除它们 --> </DefaultRolloverStrategy> ``` 另外,查找使用`${sys:every_file_size}`的地方,修改为: ```xml <SizeBasedTriggeringPolicy size="${sys:every_file_size:-10MB}" /> ``` 或者,如果不需要动态配置,直接写成固定值: ```xml <SizeBasedTriggeringPolicy size="10MB" /> ``` 3. **重新运行应用**:修改后重新启动应用,观察错误是否消失。 另外,如果错误持续,可以尝试以下: - 确保使用的Log4j2版本与Spring Boot兼容,避免版本冲突。 - 检查是否有多个日志配置文件被加载,导致配置冲突。 如果用户没有自定义日志配置,那么可能是使用的第三方库的日志配置有问题,这时候可以尝试排除有问题的库,或者覆盖默认配置。 注意:Spring Boot默认使用Logback,如果项目中引入了Log4j2,则需要排除Logback。检查依赖关系,确保正确使用了Log4j2。 综上所述,用户需要检查并修复日志配置文件中的问题,特别是与POSIX属性和系统变量引用相关的部分。 §§相关问题§§ 1. 如何解决Log4j2在Windows系统上报错“Posix file attribute view not valid”的问题? 2. 在Spring Boot中如何正确配置Log4j2以避免变量解析失败? 3. 除了修改日志配置,还有哪些方法可以解决“FileSize unable to parse bytes”错误? 4. 如何检查Spring Boot项目中是否存在日志配置冲突? </think> 在IntelliJ IDEA中使用"Shorten command line"方法(特别是选择"JAR manifest"选项)后出现的日志报错,通常是由于日志系统(如Log4j2)配置问题引发的。这些错误主要涉及文件属性解析和系统变量引用问题。以下是关键错误分析和解决方案: ### 错误原因分析 1. **POSIX文件属性错误**: - `ERROR Posix file attribute view not valid...` 当日志滚动策略(如Log4j2的`DefaultRolloverStrategy`)尝试获取Unix/Linux特有的文件属性(权限/用户/组)时,在Windows系统上会报错。 - `Null object returned for PosixViewAttribute...` 因不支持POSIX属性,返回空值导致策略执行失败。 2. **文件大小解析错误**: - `ERROR FileSize unable to parse bytes: ${sys:every_file_size}` 日志配置中引用了未定义的JVM系统变量`every_file_size`,导致解析失败。 --- ### 解决方案 #### 第一步:修复日志配置(关键) 1. **禁用POSIX相关配置** 在日志配置文件(如`log4j2.xml`)中修改滚动策略,删除POSIX属性: ```xml <DefaultRolloverStrategy> <!-- 删除filePermissions/fileOwner/fileGroup等POSIX属性 --> <SizeBasedTriggeringPolicy size="${sys:every_file_size:-100MB}" /> </DefaultRolloverStrategy> ``` 2. **修复变量引用问题** - **方案A**:定义系统变量 在IDEA运行配置的"VM options"中添加: ``` -Devery_file_size=100MB ``` - **方案B**:设置默认值(推荐) 在配置中使用`:-`语法提供默认值(如上例`${sys:every_file_size:-100MB}`)。 #### 第二步:验证依赖兼容性 ```diff - 检查依赖冲突: 在pom.xml中确保Log4j2版本与Spring Boot兼容: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` #### 备用方案 如果问题持续: 1. 临时关闭日志滚动策略(测试环境): ```properties logging.log4j2.config.override=disableRollingStrategy ``` 2. 切换回完整命令行模式(需配合其他优化): - 在IDEA运行配置中将"Shorten command line"改回`None` - 同时在`pom.xml`中添加类路径优化: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin> ``` --- ### 预防措施 1. 在跨平台项目中避免使用POSIX专属属性 2. 所有日志配置变量必须提供默认值(`${var:-default}`语法) 3. 使用`mvn dependency:tree`检查日志库冲突
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值