Используя аннотацию AOP / AspectJ и @Loggable
из jcabi-аспектов , вы можете сделать это легко и компактно:
@Loggable(Loggable.DEBUG)
public String getSomeResult() {
// return some value
}
Каждый вызов этот метод будет отправлен в службу регистрации SLF4J с уровнем ведения журнала DEBUG
. И каждое сообщение журнала будет включать время выполнения.
export class MemeGenerator extends React.Component {
constructor (props) {
super(props)
this.state = {
apiData: []
}
this.submitChange = this.submitChange.bind(this)
}
componentDidMount () { /* fetch something as default here to show user or nothing till user pushes Gen button*/}
submitChange (name) {
fetch(`https://api.imgflip.com/${name}`)
.then(response => response.json())
.then(data => {
this.setState({
apiData: data
})
console.log(this.state.apiData)
})
}
render () {
return (
<div>
<form onSubmit={this.submitChange}>
/* you should decide whre to get this name from an array of names from state? hardcode enum ...*/
<button onClick={this.submitChange({name})} value='Submit'>Gen</button>
<div>
<img src='http://i.imgflip.com/1bij.jpg' onLoad={this.loadImg} />
</div>
</form>
</div>
)}}