我有一个可以由两个入口点调用的服务:控制台应用程序的main()
和restendpoint。
服务应该通过SL4J记录器记录到一个文件中。
当我通过命令行调用应用程序(java-jar myartifact.jar
)时,它工作良好,文件被正确填充。
这种服务可以称为两种方式:
TaskCommandLineApp
POST
)TaskController
三个课程的相关部分:
public final class TaskService {
private static final Logger LOGGER = LoggerFactory.getLogger(TaskService.class);
}
public static void main(String[] args) {
//...
TaskRequest taskRequest = ... (coming from input);
TaskService taskService = new TaskService();
taskService.run(taskRequest);
//...
}
@RestController
@RequestMapping("/task")
public final class TaskController {
@Autowired
private final TaskService taskService;
@RequestMapping(value = "/tasks", method = RequestMethod.POST)
public ResponseEntity<?> postTask(@RequestBody TaskRequest taskRequest) {
//...
taskRequest.run(taskRequest);
//...
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="File" fileName="task.log" immediateFlush="true" append="false">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<!-- additivity=false ensures summary log data only goes to the summary log file -->
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.14.1</version>
</dependency>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
</parent>
默认情况下,spring将使用不同的日志机制“spring-boot-starter-logging”
如果您想让log4j/log4j2工作,那么您应该排除默认依赖项,并添加与log4j相关的依赖项。由于您已经进行了配置,我想排除默认配置就足够了。通过在pom.xml文件中添加exclude子句,我对“spring-boot-starter-web”项目采用了这种方法
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
你好,我有一个bash脚本,我打算测量时间流逝,CPU%和内存使用的脚本与输出被放入一个. txt文件与所需的输出,如: 执行此操作的脚本如下所示: 然而,下载终端进度也被定向到. txt文件,即. txt文件。 我不熟悉使用stderr和stdout,所以我是否误解了它们,我将如何解决这个问题?
问题内容: 当我尝试去做 我得到一个空的输出。 预期输出为: 问题答案: 如果没有输出,通常是因为命令无法启动。 阅读()以检查是否有任何错误。
有时当gdb输出信息较多时,gdb会暂停输出,并会打印“---Type <return> to continue, or q <return> to quit---”这样的提示信息,如下面所示: 81 process 2639102 0xff04af84 in __lwp_park () from /usr/lib/libc.so.1 80 process 2573566
我有php文件模板,我需要填充一些数据并导出为“rendered_view.php”。它需要每天自动完成。所以我正在尝试使用Laravel Scheduler。 所以我有: 查看“view_to_render.blade.php” 控制器"MiscController.php" 路线 控制台/内核。php 场景1:如果我导航到127.0.0.1:8000/testRenderView,它就可以工作
我试图使用jsch连接到远程交换机,运行一些命令并提取输出。 我能够使用连接到开关,但是命令输出在输入流中不可用。也许我做得不对。这是密码 当我调试inputStream时。isAvailable()始终返回零,表示该命令没有输出。 蒂亚!
问题内容: 在Python中,通过而不是打扰其输出来调用命令的最短和标准方法是什么。 我尝试了,但是似乎返回了输出。我对此并不感到烦恼,我只需要在不使输出混乱的情况下静默运行程序即可。 如果有帮助,我正在打电话给我,我的意图只是打电话给我。 问题答案: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)