小编Bom*_*e_A的帖子

如何让Log4j使用stdout?

我正在使用log4j在一些我正在进行调试的代码中.我一直在运行我的代码java -jar test.jar | tee file.txt来登录到一个文件,但现在我希望能够在我仍在运行时切换我正在登录的文件,这是tee无法做到的.现在我正在这样做

private static final Logger log = LoggerFactory.getLogger(Test.class);

public void main() {
File file = new File(/path/to/file);
System.setOut(new PrintStream(file));
System.out.println("hello world"); //This works.
log.info("hello world"); //this doesn't.
Run Code Online (Sandbox Code Playgroud)

由于某种原因,Logger输出不会进入我的文件,它会进入我的控制台,但println()工作正常.有谁知道为什么会这样,以及如何解决这个问题?

谢谢.

编辑:这是我的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="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <!--<param name="ConversionPattern" value="%d %-5p [%c] %m%n" />-->
            <param name="ConversionPattern" value="%d %-5p [%c:%L] %m%n" />
        </layout>
    </appender>
    <logger name="com.company">
        <level value="trace" />
    </logger>
    <logger name="org.springframework">
        <level …
Run Code Online (Sandbox Code Playgroud)

java log4j

6
推荐指数
2
解决办法
1万
查看次数

Python 函数参数中元组的默认值

我知道在 python 中你可以为参数设置默认值,如下所示:

 def func(self, arg='value'):
     #somecode
Run Code Online (Sandbox Code Playgroud)

我有一个最多需要 16 个参数的函数,因此我希望将它们存储为元组。问题是我想为元组的某些值设置默认值,而不是整个值。将默认元组设置为

def func(self, values=('foo', 'bar', 'foobar')):
Run Code Online (Sandbox Code Playgroud)

如果我传入一个只有两个值的元组,会被覆盖吗?如果我这样做,例如:

 func(('bar', 'foo')
Run Code Online (Sandbox Code Playgroud)

值==('bar','foo'),而不是('bar','foo','foobar')。有解决方法吗?

python

5
推荐指数
1
解决办法
1万
查看次数

Selenium @FindBy 通过一个 xpath 或另一个查找

我正在尝试使用以下方法在页面上查找元素

@FindBy(xpath = "somexpath")
WebElement someElement;
Run Code Online (Sandbox Code Playgroud)

问题是有时元素的 xpath 略有不同(因为在同一个表中显示失败的登录消息)。如何通过一个 xpath 或另一个找到元素?就像是

xpath == "somexpath1" || xpath == "somepath2"
Run Code Online (Sandbox Code Playgroud)

我试过做一个重复的注释,像这样:

@FindBy(xpath = "somexpath1")
@FindBy(xpath = "somexpath2")
WebElement someElement
Run Code Online (Sandbox Code Playgroud)

但这不会编译。我试过使用@FindBys,但这似乎像&& 而不是||。

任何帮助,将不胜感激。谢谢!

java selenium

2
推荐指数
1
解决办法
1926
查看次数

在另一个模块中使用类/函数

我主要有 Java 背景,但最近开始研究 Python。我基本上已经明白了,但有些语法对我来说似乎很奇怪。我正在处理这个项目,其中包含多个文件/类。我有一个类,Mesh.py:

class Mesh:
    def __init__(self, name):
        #dostuff
Run Code Online (Sandbox Code Playgroud)

我想在另一个文件 Main.py 中实例化它。我注意到两件事,

  1. 我必须导入 Mesh,这对我来说似乎很奇怪,因为它在我的项目中,
  2. 要创建网格,我必须这样做:

    mesh = Mesh.Mesh('name')
    
    Run Code Online (Sandbox Code Playgroud)

这看起来超级尴尬。为什么我不能这样做

mesh = Mesh('name')
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么,还是这只是Python不可避免的一部分?

python

1
推荐指数
1
解决办法
3732
查看次数

标签 统计

java ×2

python ×2

log4j ×1

selenium ×1