小编Asi*_*sim的帖子

使用log4j在日志文件中打印线程ID

我试图在我的日志文件中打印正在进行日志记录的线程的id.我在代码级别做了它,log.info(Thread.currentThread().getId())其中"log"是Logger类对象,但这不是我想要的.实际上我的应用程序是一个大型的分布式应用程序,并且不可能在代码中添加Thread.currentThread().getId()每个应用程序log.info("something").无论如何,我可以在我的log4j.xml文件中进行任何更改,并为我的代码中的每个log.info打印线程ID.这是我的log4j.xml

<log4j:configuration debug="true">
<!-- File Appenders -->

<appender name="EventsAndErrorsFileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="EventsAndErrors.xml" />
    <param name="Datepattern" value="'.'yyyy-MM-dd-HH" />
    <param name="MaxFileSize" value="1000KB" />
    <param name="MaxBackupIndex" value="140" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%C] %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="ERROR" />
    </filter>
</appender>

<root>
    <priority value="debug" />
    <appender-ref ref="EventsAndErrorsFileAppender" />
    <appender-ref ref="ExceptionFileAppender" />
</root>
Run Code Online (Sandbox Code Playgroud)

现在我假设我可以在我的布局中添加一些东西来打印线程.我还附上了我正在尝试此示例的示例代码,仅供参考

import org.apache.log4j.Logger;

class MyThread extends Thread implements MyInterface
  {
   public void run()
    {
    int …
Run Code Online (Sandbox Code Playgroud)

java logging multithreading log4j

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

匿名对象何时从内存中删除以及何时建议使用它们?

我是 C++ 新手,我试图了解构造函数和析构函数以及有关内存管理的一些知识。在下面的代码中,除了

1.MyClass().disp(); 2.新增我的班级;3.new MyClass(300);

1)我想知道将这三个对象称为匿名对象是否正确。2)对于MyClass(),我理解这会创建一个对象并立即销毁它,因此不存在内存问题。但对于 new MyClass() ,析构函数永远不会被调用。我还明白,因为这是在堆上,所以我必须显式删除该对象。但在这种情况下我该怎么做呢?
如果不可能,程序执行后内存什么时候会释放?3)我还想知道这种类型的对象创建(new MyClass)在什么情况下有用。

#include<iostream>
#include<conio.h>
using namespace std;

class MyClass
{
private:
    int num;
public:
    MyClass()
    {
        cout<<"no-arg constructor"<<endl;
    }
    MyClass(int num)
    {
        this->num=num;
        cout<<"one param constructor"<<endl;
    }
    ~MyClass()
    {
        cout<<"inside destructor\t"<<num<<endl;
    }
    void disp()
    {
        cout<<num<<endl;
    }
 };

int main()
{
    MyClass m1;
    MyClass m2(200);

    MyClass *m3=new MyClass;
    MyClass *m4=new MyClass(400);

    MyClass().disp();
    new MyClass;
    new MyClass(300);

    delete m4;
    delete m3;
    return 0;

} 
Run Code Online (Sandbox Code Playgroud)

c++

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

在 Node js 中模拟 gcp pubsub 对象。开玩笑地

我正在尝试为 GCP 云功能编写单元测试。下面是我正在尝试测试的代码片段。

//index.js
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();

exports.myFunction = functions.runWith(RUNTIME_OPTS).https.onCall(async (data, context) => {
  //pubsubbody = generated..

  //some logic

  await pubsub.topic(topicname).publish(pubsubBody, {
    platform: body.platform,
    environment: body.environment,
    event: !!event ? event : 'unknown',
  });
});
Run Code Online (Sandbox Code Playgroud)

我能够使用 firebase-functions-test 库测试 myFunction 逻辑。我做了这样的事情

//test.js
const fft = require('firebase-functions-test')();
const funcs = require('../../index');

describe('function to test viewAddRequestedProxy', () => {
  const wrapped = fft.wrap(funcs.viewAddRequestedProxy);

  // simple logic test.
  test('NullDataTest', async () => {
    const result = await wrapped(null, null); …
Run Code Online (Sandbox Code Playgroud)

unit-testing node.js google-cloud-platform jestjs

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