我有一个独立的java应用程序,其中包含以下config log4j.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="maxFileSize" value="1MB" />
<param name="maxBackupIndex" value="1" />
<param name="File"
value=".\\myComp.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd.MM.yy HH\:mm\:ss.SSS} %5p %c{1}:%L - %m%n " />
</layout>
</appender>
<category name="com.mycomp.project.starter">
<priority value="${project.client.log.level.starter}" />
</category>
<category name="com.security">
<priority value="${project.client.log.level.security}" />
</category>
<root>
<level value="ERROR" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
当我启动应用程序时,我可以通过可以包含的ini文件设置日志级别:
-Dproject.client.log.level.starter=INFO
-Dproject.client.log.level.security=DEBUG
我想归档的是,如果-Dproject.client.log.level.security=DEBUG
未设置,则应使用ERROR。
我如何存档?我提供任何帮助。
答案 0 :(得分:0)
好的,我得到了一个解决方案,不幸的是它涉及切换到log4j2。
我发现log4j允许Property Substitution允许使用前缀为#import <CoreTelephony/CTCall.h>
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
@interface MMCallNotificationManager()
@property (nonatomic, strong) CTCallCenter *callCenter;
@property (nonatomic) BOOL callWasStarted;
@end
@implementation MMCallNotificationManager
- (instancetype)init
{
self = [super init];
if (self) {
self.callCenter = [[CTCallCenter alloc] init];
self.callWasStarted = NO;
__weak __typeof__(self) weakSelf = self;
[self.callCenter setCallEventHandler:^(CTCall *call) {
if ([[call callState] isEqual:CTCallStateIncoming] ||
[[call callState] isEqual:CTCallStateDialing]) {
if (weakSelf.callWasStarted == NO) {
weakSelf.callWasStarted = YES;
NSLog(@"Call was started.");
}
} else if ([[call callState] isEqual:CTCallStateDisconnected]) {
if (weakSelf.callWasStarted == YES)
{
weakSelf.callWasStarted = NO;
NSLog(@"Call was ended.");
}
}
}];
}
return self;
}
@end
的系统属性。结合this finding(我可以使用简单的sys:
设置默认值),我将配置更改为:
-
现在我可以在ini文件中设置它,或者在不需要时将其保留,并且仍然具有已定义的日志级别。