我们正在研究AWS Lambda和Cloudwatch日志。现在,我想从Cloudwatch日志中获取所有日志事件,而不使用Java的logStreamName。
由于我们以动态方式生成日志流,因此不确定如何从Cloudwatch日志组中获取所有日志。
我知道,如果我们有日志流名称,那么我们可以使用以下代码
ClientConfiguration clientConfig = getClientConfig();
AWSLogsClientBuilder builder = AWSLogsClientBuilder.standard();
AWSLogs logsClient= builder.withCredentials(new AWSStaticCredentialsProvider(new ProfileCredentialsProvider(profile).getCredentials())).withRegion(Regions.AP_SOUTHEAST_2).withClientConfiguration(clientConfig).build();
GetLogEventsRequest request = new GetLogEventsRequest()
.withStartTime(1531231200000L)
.withEndTime(1531576800000L)
.withLogGroupName("FlowLogs_GroupName")
.withLogStreamName("eni-xxxxx");
GetLogEventsResult result = logsClient.getLogEvents(request);
result.getEvents().forEach(outputLogEvent -> {
System.out.println(outputLogEvent.getMessage());
});
Run Code Online (Sandbox Code Playgroud)
由于这是AWS的新手,因此有人可以帮助我提供一些代码示例吗?
我有一个 spring boot 应用程序,当我删除基本应用程序测试时,它无一例外地运行。但是当我添加应用程序测试类时它显示以下异常
{"@timestamp":"2018-04-23T18:10:39.421+05:30","@version":1,"message":"The following profiles are active: development","logger_name":"com.tmobile.u2.uprising.adjustment.AdjustmentApplicationTests","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:44.914+05:30","@version":1,"message":"HikariPool-1 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:44.958+05:30","@version":1,"message":"Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation.","logger_name":"com.zaxxer.hikari.util.DriverDataSource","thread_name":"main","level":"WARN","level_value":30000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:48.794+05:30","@version":1,"message":"HikariPool-1 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:49.315+05:30","@version":1,"message":"HHH000204: Processing PersistenceUnitInfo [\n\tname: default\n\t...]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:49.847+05:30","@version":1,"message":"HHH000412: Hibernate Core {5.0.12.Final}","logger_name":"org.hibernate.Version","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:49.857+05:30","@version":1,"message":"HHH000206: hibernate.properties not found","logger_name":"org.hibernate.cfg.Environment","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:49.864+05:30","@version":1,"message":"HHH000021: Bytecode provider name : javassist","logger_name":"org.hibernate.cfg.Environment","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:50.076+05:30","@version":1,"message":"HCANN000001: Hibernate Commons Annotations {5.0.1.Final}","logger_name":"org.hibernate.annotations.common.Version","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:50.839+05:30","@version":1,"message":"HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect","logger_name":"org.hibernate.dialect.Dialect","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:54.583+05:30","@version":1,"message":"HHH90000014: Found use of deprecated [org.hibernate.id.SequenceHiLoGenerator] sequence-based id generator; use org.hibernate.id.enhanced.SequenceStyleGenerator instead. See Hibernate Domain Model Mapping Guide for details.","logger_name":"org.hibernate.orm.deprecation","thread_name":"main","level":"WARN","level_value":30000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:56.251+05:30","@version":1,"message":"HikariPool-1 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"main","level":"INFO","level_value":20000,"APP_NAME":"adjustmentPublisher"}
{"@timestamp":"2018-04-23T18:10:57.467+05:30","@version":1,"message":"HikariPool-1 …Run Code Online (Sandbox Code Playgroud) 我正在使用以下方法安装 spring boot 应用程序:
@Transactional(rollbackOn = Exception.class)
private void saveAndUpdatepMSTAndRollUpEntries(pMST newpMSTEntry,
pMST existingpMSTEntry,
List<sPTrans> sPTranss,
List<sPTrans> sPTransUpdatedFlagList) {
if(!ObjectUtils.isEmpty(existingpMSTEntry))
databaseService.deleteProcessedpMST(existingpMSTEntry);
if(!CollectionUtils.isEmpty(sPTransUpdatedFlagList))
databaseService.saveProcessedsPTransFeedWithUpdatedFlag(sPTransUpdatedFlagList);
if(!ObjectUtils.isEmpty(newpMSTEntry))
databaseService.saveProcessedpMSTTableEntry(newpMSTEntry);
}
Run Code Online (Sandbox Code Playgroud)
我的数据库服务包含如下代码:
public class DatabaseService {
private PosMonthlyStRepository posMonthlyStRepository;
private ScmsaPosTransRollupRepository scmsaPosTransRollupRepository;
public DatabaseService(PosMonthlyStRepository posMonthlyStRepository) {
this.posMonthlyStRepository = posMonthlyStRepository;
}
public void deleteProcessedpMST(pMST objpMST){
posMonthlyStRepository.delete(objpMST);
}
public void saveProcessedsPTransFeedWithUpdatedFlag(List<sPTrans> sPTransssPTransUpdatedFlagList) {
scmsaPosTransRollupRepository.save(sPTransUpdatedFlagList);
}
public void saveProcessedpMSTTableEntry((pMST objpMST) {
posMonthlyStRepository.save(objpMST);
}
}
Run Code Online (Sandbox Code Playgroud)
但是每当发生异常时,事务都不会回滚,任何人都可以建议我在这里做错了什么。
java spring exception-handling transactional spring-transactions