# Log
```rust
//! Addition example.
#![no_std]
// for the panic handler.
#[cfg(not(test))]
extern crate zink;
use zink::Event;
/// A `Ping` event.
#[derive(Event)]
struct Ping;
#[no_mangle]
pub extern "C" fn log1() {
Ping.log1(b"pong");
}
```
The log API of zink is derived by the trait `Event` which provides methods
`log0`, `log1`, `log2`, `log3`, `log4`. We current only supports static
bytes in this API.
```wasm
(module
(type (;0;) (func))
(type (;1;) (func (param i32 i32 i32 i32)))
(import "evm" "log1" (func (;1;) (type 1)))
(import "env" "memory" (memory (;0;) 17))
(func (;1;) (type 0)
i32.const 1048576
i32.const 4
i32.const 1048580
i32.const 4
call 0)
(export "log1" (func 1))
(data (;0;) (i32.const 1048576) "Pingpong"))
```
The static byte array will be compiled to the data section of wasm, `zinkc`
gets it from the data section then process it to the logging interfaces.
```
63706f6e676350696e6760005260206000a15f5ff3
```