Skip to content

Commit d20592e

Browse files
author
RIC217
committed
Now creates logs messages and files
1 parent b1853a3 commit d20592e

File tree

4 files changed

+50
-8
lines changed

4 files changed

+50
-8
lines changed

Diff for: .gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ bin/
1515
.idea/
1616
.vscode/
1717
*.iml
18-
chat.db
18+
chat.db
19+
logs

Diff for: src/database_utils.v

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ fn (mut app App) get_account_by_id(id int) Account {
4141

4242
fn (mut app App) account_exists(username string) bool {
4343
if app.get_account_by_username(username) or {
44-
eprintln(err)
44+
app.info(err.msg())
4545
return false
4646
}.id == 0 {
4747
return false

Diff for: src/main.v

+46-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ module main
33
import net.websocket
44
import vweb
55
import db.sqlite
6+
import log
7+
import time
8+
import os
69

710
struct Account {
811
id int [nonnull; primary]
@@ -18,6 +21,7 @@ struct App {
1821
pub mut:
1922
title string
2023
db sqlite.DB
24+
logger log.Log
2125
}
2226

2327
const (
@@ -27,7 +31,36 @@ const (
2731
)
2832

2933
pub fn (mut app App) before_request() {
30-
println('New vweb connection from ${app.ip()} : ${app.req.method} ${app.req.url}')
34+
app.info('New vweb connection from ${app.ip()} : ${app.req.method} ${app.req.url}')
35+
}
36+
37+
fn (mut app App) setup_logger() {
38+
if !os.exists("logs") {
39+
os.mkdir("logs") or {
40+
app.info("Cannot create log directory `logs`")
41+
}
42+
}
43+
44+
app.logger.set_level(.debug)
45+
46+
app.logger.set_full_logpath("./logs/log_${time.now().ymmdd()}")
47+
app.logger.log_to_console_too()
48+
}
49+
50+
fn (mut app App) info(msg string) {
51+
app.logger.info(msg)
52+
53+
app.logger.flush()
54+
}
55+
56+
fn (mut app App) warn(msg string) {
57+
app.logger.warn(msg)
58+
59+
app.logger.flush()
60+
}
61+
62+
fn (mut app App) fatal(msg string) {
63+
app.logger.fatal(msg)
3164
}
3265

3366
fn main() {
@@ -36,20 +69,28 @@ fn main() {
3669
title: 'Chat'
3770
}
3871

72+
app.setup_logger()
73+
74+
defer {
75+
app.logger.close()
76+
}
77+
3978
app.init_databases()
4079

4180
spawn vweb.run(app, port)
4281

43-
websocket_server.on_connect(client_connected) or { panic(err) }
82+
websocket_server.on_connect(app.client_connected) or {
83+
app.fatal(err.msg())
84+
}
4485

4586
websocket_server.on_message(message_received)
4687

47-
websocket_server.listen() or { panic('Error while listening : ${err}') }
88+
websocket_server.listen() or { app.fatal('Error while listening : ${err}') }
4889
}
4990

50-
fn client_connected(mut c websocket.ServerClient) !bool {
91+
fn (mut app App) client_connected(mut c websocket.ServerClient) !bool {
5192
if c.resource_name == '/' {
52-
println('New websocket connection : ${c.client.conn.peer_addr()!}')
93+
app.info('New websocket connection : ${c.client.conn.peer_addr()!}')
5394
return true
5495
}
5596
return false

Diff for: src/routes.v

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn (mut app App) page_login() vweb.Result {
1919
['/login'; post]
2020
pub fn (mut app App) post_login(username string, password string) vweb.Result {
2121
account := app.get_account_by_username(username) or {
22-
eprintln(err)
22+
app.info(err.msg())
2323
return app.redirect('/login?err=This should never happen, please report this issue on Github !')
2424
}
2525
if account.id == 0 {

0 commit comments

Comments
 (0)