是否可以覆盖已在log4j.properties未创建新appender 的情况下配置的appender的"File"属性?如果是这样 - 怎么样?
情况就是这样:我有两个分配器,A1是ConsoleAppender,A2是FileAppender.A2的"文件"指向一般错误.log:
log4j.appender.A2.File=error.csv
此appender仅记录错误级别事件或更糟
log4j.appender.A2.Threshold=error.
现在我希望将这些错误写入不同的文件中,具体取决于导致错误的类,因为有几个类正在创建实例.能够快速查看哪个类创建了错误将会有很大的帮助,因为它更有用,然后浏览error.log来查找类标记.
所以我的想法是覆盖"File"属性,例如在这些新创建的类的构造函数中,因此它们将错误记录在不同的文件中.
非常感谢提前!
我正在尝试在查询中设置参数,例如:
select * from Cars where Cars.color NOT IN (:color_params)
Run Code Online (Sandbox Code Playgroud)
当我在我的JavaClass中添加参数时,就像:
...
query.setParameter("color_params", "RED,BLUE");
...
Run Code Online (Sandbox Code Playgroud)
这不起作用,只使用一个参数.
我已经尝试过"'RED','BLUE'"
并且没有努力.
如果我把我的参数放在查询中,例如:
select * from Cars where Cars.color NOT IN ('RED','BLUE')
Run Code Online (Sandbox Code Playgroud)
我做错了什么!?
提前致谢
我有一个名为app.log的日志文件.当它翻身时(我将其设置为每分钟仅用于测试目的),我希望将其重命名为app-YYYY-MM-dd_HH-mm.log但它不起作用.以下是我的log4j设置:
log4j.appender.myLog=org.apache.log4j.RollingFileAppender
log4j.appender.myLog.rollingPolicy=TimeBasedRollingPolicy
log4j.appender.myLog.File=logs/app.log
log4j.appender.myLog.rollingPolicy.FileNamePattern=logs/app-%d{yyyy-MM-dd_HH-mm}.log
log4j.appender.myLog.Append=true
log4j.appender.myLog.layout=org.apache.log4j.PatternLayout
log4j.appender.myLog.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
Run Code Online (Sandbox Code Playgroud)
有谁知道这是什么问题?在翻转期间,它只是将文件重命名为app.log.1.
我被困在尝试查询(QueryDSL)工作,这给了我一个不同类别的计数.例如,我想要实现的目标:
categoryA -> 10 entries
categoryB -> 20 entries
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
query().from(application)
.transform(groupBy(application.category).as(list(application)));
Run Code Online (Sandbox Code Playgroud)
但是,这给了我每个类别所有整个条目的列表,我只想得到这个.
我试着乱搞count()但没有运气.
有人知道怎么做吗?
我运行这段代码:
public static void main(String[] args) {
System.out.println(catcher());
}
private static int catcher() {
try {
System.out.println("TRY");
thrower();
return 1;
} catch (Exception e) {
System.out.println("CATCH");
return 2;
} finally {
System.out.println("FINALLY");
return 3;
}
}
private static void thrower() {
throw new RuntimeException();
}
Run Code Online (Sandbox Code Playgroud)
我希望在输出中看到这个:
TRY
CATCH
FINALLY
2
Run Code Online (Sandbox Code Playgroud)
但令人惊讶的是输出是:
TRY
CATCH
FINALLY
3
Run Code Online (Sandbox Code Playgroud)
我糊涂了.return 2声明在哪里?这是return at finally一种不好的做法吗?
我有一些使用JMX监视的JAVA应用程序。
我想为这些应用程序编写一个SNMP客户端,它包装了JMX接口,并通过发现公开了通过SNMP在JMX中公开的相同属性。
如果仅弄清楚如何用JAVA编写SNMP客户端,编写客户端就没有问题。我可以使用JAVA的免费SNMP库吗?是否有用于JMX的良好的免费SNMP适配器?(尝试过“ WebNMS SNMP Adapter for JMX”,但未成功)
谢谢!
在我的程序中,我需要将char[]固定大小转换为修剪字符串(没有从数组中取出空格).在我做的那一刻,new String(array).trim()但我想trim()尽可能避免.有什么建议怎么做得更好?最好的祝福.
我在ItemClass中有两种方法:
public void setValue(String v);
public void setValue(Double v);
Run Code Online (Sandbox Code Playgroud)
我想使用条件运算符来setVAlue在另一个类:
String str = ...
Double dbl = ...
item.setValue((condition) ? str : dbl);
Run Code Online (Sandbox Code Playgroud)
但编译说:
cannot find symbol
symbol : method setValue(java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>)
Run Code Online (Sandbox Code Playgroud)
我认为编译器使用Double和String 最近的公共超类(超级接口)作为条件运算符的类型.但为什么?
我有一些实现比较器接口的类通过添加患者对象来对ArrayList进行排序,我想通过多个属性对列表进行排序,并且只使用Enums进行排序没有问题,但是我想通过使用布尔值进行排序来覆盖这种排序.我知道我不能使用该compareTo方法,因为它不是Wrapper类,但我无法找到一种合适的方法来对列表进行排序boolean.
任何帮助将不胜感激.
public Patient(int nhsNumber, String name, Status triage, boolean previouslyInQueue, boolean waitingTime){
this.nhsNumber = nhsNumber;
this.name = name;
this.triage = triage;
this.previouslyInQueue = previouslyInQueue;
this.waitingTime = waitingTime;
}
Run Code Online (Sandbox Code Playgroud)
这是我的比较课
public class PatientInQueueComparator implements Comparator<Patient> {
@Override
public int compare(Patient p1, Patient p2) {
if(p1.isPreviouslyInQueue() && !p2.isPreviouslyInQueue()){
return 1;
}else if(p1.isPreviouslyInQueue() && p2.isPreviouslyInQueue()){
return -1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的主要方法
List<Patient> queue = new ArrayList<Patient>();
queue.add(new Patient(1, "Bob", Status.URGENT, true, false)); //1st
queue.add(new Patient(2, "John", Status.EMERGENCY, …Run Code Online (Sandbox Code Playgroud) 我试图创建一个简单的彩票计划.这是一个问题:它仍然打印相同的数字.例如,我得到了33 21 8 29 21 10输出.每当生成随机数时,代码会检查是否已生成该数字,然后它会创建一个新的随机数,但之后不会再次检查.我找不到办法做到这一点.
public static void main(String[] args)
{
int[] lottery = new int[6];
int randomNum;
for (int i = 0; i < 6; i++)
{
randomNum = (int) (Math.random() * 50); //Random number created here.
for (int x = 0; x < i; x++)
{
if (lottery[i] == randomNum) // Here, code checks if same random number generated before.
{
randomNum = (int) (Math.random() * 50);//If random number is same, another number generated.
} …Run Code Online (Sandbox Code Playgroud) java ×10
log4j ×2
arrays ×1
boolean ×1
comparator ×1
jmx ×1
jpa ×1
linked-list ×1
logging ×1
named-query ×1
overriding ×1
properties ×1
querydsl ×1
snmp ×1
sorting ×1
sql ×1
string ×1
trim ×1
try-catch ×1