Skip to content

Commit 460dbda

Browse files
author
CY-20170113NGER\MyPC
committed
no message
1 parent 418c6aa commit 460dbda

File tree

9 files changed

+264
-0
lines changed

9 files changed

+264
-0
lines changed

app.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
var express = require('express');
2+
var path = require('path');
3+
var favicon = require('serve-favicon');
4+
// var logger = require('morgan');
5+
// 引入log4j,并且加载配置文件
6+
var log4js = require('log4js');
7+
log4js.configure('config/log4j.json');
8+
9+
var cookieParser = require('cookie-parser');
10+
var bodyParser = require('body-parser');
11+
12+
var index = require('./routes/index');
13+
var users = require('./routes/users');
14+
15+
var app = express();
16+
17+
// view engine setup
18+
app.set('views', path.join(__dirname, 'views'));
19+
app.set('view engine', 'ejs');
20+
21+
// uncomment after placing your favicon in /public
22+
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
23+
// 注释掉express默认的日志模块,使用log4j
24+
// app.use(logger('dev'));
25+
app.use(log4js.connectLogger(log4js.getLogger("http"), { level: 'trace' }));
26+
27+
app.use(bodyParser.json());
28+
app.use(bodyParser.urlencoded({ extended: false }));
29+
app.use(cookieParser());
30+
app.use(express.static(path.join(__dirname, 'public')));
31+
32+
app.use('/', index);
33+
app.use('/users', users);
34+
35+
// catch 404 and forward to error handler
36+
app.use(function(req, res, next) {
37+
var err = new Error('Not Found');
38+
err.status = 404;
39+
next(err);
40+
});
41+
42+
// error handler
43+
app.use(function(err, req, res, next) {
44+
// set locals, only providing error in development
45+
res.locals.message = err.message;
46+
res.locals.error = req.app.get('env') === 'development' ? err : {};
47+
48+
// render the error page
49+
res.status(err.status || 500);
50+
res.render('error');
51+
});
52+
53+
module.exports = app;

bin/www

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#!/usr/bin/env node
2+
3+
/**
4+
* Module dependencies.
5+
*/
6+
7+
var app = require('../app');
8+
var debug = require('debug')('node-log4j2-example:server');
9+
var http = require('http');
10+
11+
/**
12+
* Get port from environment and store in Express.
13+
*/
14+
15+
var port = normalizePort(process.env.PORT || '3000');
16+
app.set('port', port);
17+
18+
/**
19+
* Create HTTP server.
20+
*/
21+
22+
var server = http.createServer(app);
23+
24+
/**
25+
* Listen on provided port, on all network interfaces.
26+
*/
27+
28+
server.listen(port);
29+
server.on('error', onError);
30+
server.on('listening', onListening);
31+
32+
/**
33+
* Normalize a port into a number, string, or false.
34+
*/
35+
36+
function normalizePort(val) {
37+
var port = parseInt(val, 10);
38+
39+
if (isNaN(port)) {
40+
// named pipe
41+
return val;
42+
}
43+
44+
if (port >= 0) {
45+
// port number
46+
return port;
47+
}
48+
49+
return false;
50+
}
51+
52+
/**
53+
* Event listener for HTTP server "error" event.
54+
*/
55+
56+
function onError(error) {
57+
if (error.syscall !== 'listen') {
58+
throw error;
59+
}
60+
61+
var bind = typeof port === 'string'
62+
? 'Pipe ' + port
63+
: 'Port ' + port;
64+
65+
// handle specific listen errors with friendly messages
66+
switch (error.code) {
67+
case 'EACCES':
68+
console.error(bind + ' requires elevated privileges');
69+
process.exit(1);
70+
break;
71+
case 'EADDRINUSE':
72+
console.error(bind + ' is already in use');
73+
process.exit(1);
74+
break;
75+
default:
76+
throw error;
77+
}
78+
}
79+
80+
/**
81+
* Event listener for HTTP server "listening" event.
82+
*/
83+
84+
function onListening() {
85+
var addr = server.address();
86+
var bind = typeof addr === 'string'
87+
? 'pipe ' + addr
88+
: 'port ' + addr.port;
89+
debug('Listening on ' + bind);
90+
}

config/log4j.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"appenders": {
3+
"console": {
4+
"type": "console"
5+
},
6+
"trace": {
7+
"type": "file",
8+
"filename": "log/access.log",
9+
"maxLogSize ": 31457280
10+
},
11+
"http": {
12+
"type": "logLevelFilter",
13+
"appender": "trace",
14+
"level": "trace",
15+
"maxLevel": "trace"
16+
},
17+
"info": {
18+
"type": "dateFile",
19+
"filename": "log/app-info.log",
20+
"pattern": ".yyyy-MM-dd",
21+
"layout": {
22+
"type": "pattern",
23+
"pattern": "[%d{ISO8601}][%5p %z %c] %m"
24+
},
25+
"compress": true
26+
},
27+
"maxInfo": {
28+
"type": "logLevelFilter",
29+
"appender": "info",
30+
"level": "debug",
31+
"maxLevel": "info"
32+
},
33+
"error": {
34+
"type": "dateFile",
35+
"filename": "log/app-error.log",
36+
"pattern": ".yyyy-MM-dd",
37+
"layout": {
38+
"type": "pattern",
39+
"pattern": "[%d{ISO8601}][%5p %z %c] %m"
40+
},
41+
"compress": true
42+
},
43+
"minError": {
44+
"type": "logLevelFilter",
45+
"appender": "error",
46+
"level": "error"
47+
}
48+
},
49+
"categories": {
50+
"default": {
51+
"appenders": [
52+
"console",
53+
"http",
54+
"maxInfo",
55+
"minError"
56+
],
57+
"level": "all"
58+
}
59+
}
60+
}

package.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "node-log4j2-example",
3+
"version": "0.0.0",
4+
"private": true,
5+
"scripts": {
6+
"start": "node ./bin/www"
7+
},
8+
"dependencies": {
9+
"body-parser": "~1.17.1",
10+
"cookie-parser": "~1.4.3",
11+
"debug": "~2.6.3",
12+
"ejs": "~2.5.6",
13+
"express": "~4.15.2",
14+
"log4js": "^2.1.0",
15+
"morgan": "~1.8.1",
16+
"serve-favicon": "~2.4.2"
17+
}
18+
}

public/stylesheets/style.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
body {
2+
padding: 50px;
3+
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
4+
}
5+
6+
a {
7+
color: #00B7FF;
8+
}

routes/index.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var express = require('express');
2+
var router = express.Router();
3+
var logger = require('log4js').getLogger("index");
4+
5+
/* GET home page. */
6+
router.get('/', function(req, res, next) {
7+
logger.info('用户进入主页!测试日志等级info');
8+
res.render('index', { title: 'Express' });
9+
logger.error('返回数据成功,测试日志等级error');
10+
});
11+
12+
module.exports = router;

routes/users.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var express = require('express');
2+
var router = express.Router();
3+
4+
/* GET users listing. */
5+
router.get('/', function(req, res, next) {
6+
res.send('respond with a resource');
7+
});
8+
9+
module.exports = router;

views/error.ejs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<h1><%= message %></h1>
2+
<h2><%= error.status %></h2>
3+
<pre><%= error.stack %></pre>

views/index.ejs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title><%= title %></title>
5+
<link rel='stylesheet' href='/stylesheets/style.css' />
6+
</head>
7+
<body>
8+
<h1><%= title %></h1>
9+
<p>Welcome to <%= title %></p>
10+
</body>
11+
</html>

0 commit comments

Comments
 (0)