小编Hai*_*ang的帖子

为什么TimedRotatingFileHandler无法正常工作以及如何在日志行中解决此问题(轮换正在工作,但缺少日志行)

更新: TimedRotatingFileHandler我使用时工作不正常multiprocessing,我应该如何处理多处理日志?

我编写了自己的Logger类,如下所示,将其用作所有其他python脚本中的模块.

import logging
import logging.handlers

class Logger:
    DEFAULT_LOG_OUTPUT = "/home/haifzhan/"

    def __init__(self, logger_name, log_file_name, log_dir=DEFAULT_LOG_OUTPUT, log_level=logging.DEBUG):
        self.logger = logging.getLogger(logger_name,)
        self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')

        #self.file_handler = logging.FileHandler(log_dir + log_file_name)
        file_path = log_dir + log_file_name
        self.file_handler = logging.handlers.TimedRotatingFileHandler(file_path, when='H', backupCount=30)
        self.file_handler.setFormatter(self.formatter)
        self.logger.setLevel(log_level)
        self.logger.addHandler(self.file_handler)

        self.console_handler = logging.StreamHandler()
        self.console_handler.setFormatter(self.formatter)
        self.console_handler.setLevel(logging.DEBUG)
        self.logger.addHandler(self.console_handler)

    def get_logger(self):
        return self.logger
Run Code Online (Sandbox Code Playgroud)

在我的python脚本的顶部,我创建了一个Logger实例.

 `logger = Logger("logger name", "logfile.log", log_dir=LOG_DIR, log_level=logging.INFO).get_logger()`  # always put it at the top of my script
Run Code Online (Sandbox Code Playgroud)

它在我使用时工作得很好FileHandler,不幸的是它在我切换后省略了记录行TimedRotatingFileHandler …

python logging filehandler python-2.7

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

将两个循环合二为一

我的代码中有三个不同的循环,但我想知道是否有办法将它们中的两个组合在一起只循环一次.我的代码如下:

for x in groups:
    A bunch of code that produces the following...
    frames[x]
    highcs[x]
Run Code Online (Sandbox Code Playgroud)

然后我循环通过下面的两个循环.这些是我想要结合的.

for x, frame in frames.items():
    more unrelated code

for x, highc in highcs.items():
Run Code Online (Sandbox Code Playgroud)

最后两个循环实际上只是使用xlsxwriter创建excel工作簿.第一个循环创建工作簿并将帧[x]中的数据帧输入到工作表中.然后highc返回相同的工作表并添加新的数据帧.

python python-3.x

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

“Pods-Runner”目标具有传递依赖项,其中包括静态链接的二进制文件

这是 Flutter 和 Xcode 版本:

\n
Flutter 1.22.5 \xe2\x80\xa2 channel stable \nVersion 12.3 (12C33)\n
Run Code Online (Sandbox Code Playgroud)\n

我有一个 Flutter 应用程序,在尝试安装 Pod 时收到以下错误:

\n

错误信息是关于AgoraRtcEngine的,之前我使用的是agora 3.2.1,错误信息抱怨我需要3.3.1,然后我升级了它。

\n

然后我尝试安装所有依赖项,不幸的是,我收到了错误The \'Pods-Runner\' target has transitive dependencies that include statically linked binaries

\n

我尝试了以下命令,但失败并出现附加错误:

\n
    \n
  1. 扑干净
  2. \n
  3. 删除 ios/Flutter/Flutter.framework
  4. \n
  5. 删除 PodFile 和 PodFile.lock
  6. \n
  7. 颤动构建ios
  8. \n
\n

有谁知道原因是什么以及如何解决?谢谢。

\n

在此输入图像描述

\n

ios flutter agora.io

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

如何在JSON对象或数组中存储选择选项值和文本?

我有一个选择列表(下面的示例).我想将此选择列表(文本和值)存储在JSON对象或Array对象中.这样我以后就可以使用.each函数了.我想根据用户输入显示/隐藏选择选项列表中的记录.所有代码都已准备就绪并且正在工作,除了我无法确定如何将包含其所有文本和值对的选择选项列表存储到Array或JSON对象中,然后能够根据文本遍历它.

谢谢.

 <select id="mySelect" multiple="multiple">
    <option value="1">First</option>
    <option value="2">Second</option>
    <option value="3">Third</option>
    <option value="4">Fourth</option>
 </select>
Run Code Online (Sandbox Code Playgroud)

arrays hash jquery select json

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

角度材质 2 MatAutocompleteTrigger

我的项目使用相同形式的 3 个自动完成组件,当用户离开而不选择任何选项时,我使用以下代码将文本字段设为空白,

@ViewChild(MatAutocompleteTrigger) bedTrigger:MatAutocompleteTrigger;
bedTrigger.panelClosingActions
        .subscribe(e => {
          console.log("ward");
          if (!(e && e.source)) {
            this.orgInfoForm.get('fieldName').setValue(null);
            this.wardTrigger.closePanel();
          }
}); 
Run Code Online (Sandbox Code Playgroud)

bedTrigger 始终引用第一个自动完成组件,不能引用其他两个自动完成组件。我认为每个自动竞争都会得到一个 MatAutocompleteTrigger ,实际上表单只有一个 MatAutocompleteTrigger ,而这个引用第一个自动完成组件,我尝试

@ViewChild(MatAutocompleteTrigger) triggers:QueryList<MatAutocompleteTrigger>;
Run Code Online (Sandbox Code Playgroud)

引用所有触发器,但我只得到一个 MatAutocompleteTrigger。请指导我如何获取对 angualr Material 2 版本 5.0.2 中其他两个自动完成组件的 MatAutocompleteTrigger 引用。

angular-material2 angular

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

JedisConnectionException 读取超时

我在我的Java程序中使用jedis。它的版本是2.9.0

         <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
            <type>jar</type>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

为了避免花费太多时间通过命令查询结果keys(*),我将键存储在一个集合中,当需要所有键时,使用以下命令从集合中查询它们:

public Set<String> getKeysFromDailySet(String day) {
    Jedis jedis = jedisPool.getResource();
    Set<String> keys = new HashSet<>();
    try {
        keys = jedis.smembers(day);
        jedis.close();
    } catch (Exception e) {
        logger.error("fail get keys from daily set {}", day);
    }
    return keys;
}
Run Code Online (Sandbox Code Playgroud)

集合中有大约800 万个键,它会抛出以下超时异常:

  Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
            at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:202) ~[scoring-20180118.jar:na]
            at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40) ~[scoring-20180118.jar:na]
            at redis.clients.jedis.Protocol.process(Protocol.java:151) ~[scoring-20180118.jar:na]
            at redis.clients.jedis.Protocol.read(Protocol.java:215) ~[scoring-20180118.jar:na]
            at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340) ~[scoring-20180118.jar:na]
            at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239) ~[scoring-20180118.jar:na]
            at redis.clients.jedis.BinaryJedis.select(BinaryJedis.java:523) …
Run Code Online (Sandbox Code Playgroud)

java timeout redis jedis

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

如何在python中将字符串值转换为int值

我想在python中制作一个二十一点游戏.就像一个7s的值是7但是,一个jacks值是10所以:

cards = ['ace','king','queen'....'3','2'

firstCard = random.choice(cards)

secondCard = random.choice(cards); remove.cards(firstCard)

print(int(firstCard) + int(secondCard))
Run Code Online (Sandbox Code Playgroud)

适用于数字

我怎么能为国王或王牌做到这一点......

python python-3.x

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

添加 # noqa: F841 后 F841 仍然存在

我正在将blackflake8作为 git 中的钩子添加到我的 python 项目中pre-commit,除了F841警告之外,一切看起来都很好。我添加了# noqa: F841以避免警告但仍然得到它。

有谁知道如何解决这个问题,或者我做错了什么?

我添加了两个屏幕截图而不是粘贴代码,因为它不是用于代码调试。 在此处输入图片说明 在此处输入图片说明

python flake8 python-3.6

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

如何在 VS Code 中禁用注释格式?

我有一个带有多行注释的 Java 文件,如下所示:

/** 
 *   original: 0, 2, 1, 4, 3, 5, 7, 6
 *   max:      0, 2, 2, 4, 4, 5, 7, 7
 *   sorted:   0, 1, 2, 3, 4, 5, 6, 7
 *   index:    0, 1, 2, 3, 4, 5, 6, 7
 * 
 *   The chunks are: 0 | 2, 1 | 4, 3 | 5 | 7, 6
 *   @param arr
 *   @return
 */
Run Code Online (Sandbox Code Playgroud)

当我格式化源代码时,它会格式化注释,如下所示:

/**
 * original: 0, 2, 1, 4, 3, 5, 7, 6 max: …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code

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

如何使用sed修改特定列

如何通过sed修改特定的folumn,尤其是对该列数据应用添加数字.

我有一个csv文件,如下所示:

c1,c2,123,c4
c1,c2,345,c4
Run Code Online (Sandbox Code Playgroud)

是否可以在每行的第3列中添加400?并使结果如下所示:

c1,c2,523,c4
c1,c2,745,c4
Run Code Online (Sandbox Code Playgroud)

我自己尝试使用

"sed -n 's/[0-9]\{3\}/&+400/ p' test.csv "
Run Code Online (Sandbox Code Playgroud)

结果是

c1,c2,123+400,c4
c1,c2,345+400,c4
Run Code Online (Sandbox Code Playgroud)

sed addition

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

Array声明和Collection声明之间有什么区别

 1.  List<Car> carList = new ArrayList<Sedan>();

 2.  List<Car> carList = new ArrayList<Car>();
    carList.add(new Sedan());
Run Code Online (Sandbox Code Playgroud)

1有编译错误,2是合法的.

为什么变量声明的类型必须与我们传递给对象类型的类型匹配(不允许派生类型)?我使用的数据如下,绝对正确:

int SIZE = 10;
Car[] carArray = new Sedan[SIZE];
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么收藏品必须声明为条件2?谢谢

java generics collections typesafe

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

为什么我会收到语法错误?

sales = 1000

#def commissionRate():  

if (sales < 10000):
    print("da")  
else:
    if (sales <= 10000 and >= 15000):
        print("ea")
Run Code Online (Sandbox Code Playgroud)

if (sales <= 10000 and >= 15000):行上的语法错误.特别是在等号上.

python if-statement

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