@@ -70,7 +70,7 @@ func New() *DotWeb {
7070
7171 logDotLogo ()
7272
73- logger .Logger ().Debug ("Dotweb Start New AppServer" , LogTarget_HttpServer )
73+ logger .Logger ().Debug ("DotWeb Start New AppServer" , LogTarget_HttpServer )
7474 return app
7575}
7676
@@ -158,7 +158,7 @@ func (app *DotWeb) SetNotFoundHandle(handler NotFoundHandle) {
158158func (app * DotWeb ) SetPProfConfig (enabledPProf bool , httpport int ) {
159159 app .Config .App .EnabledPProf = enabledPProf
160160 app .Config .App .PProfPort = httpport
161- logger .Logger ().Debug ("Dotweb SetPProfConfig [" + strconv .FormatBool (enabledPProf )+ ", " + strconv .Itoa (httpport )+ "]" , LogTarget_HttpServer )
161+ logger .Logger ().Debug ("DotWeb SetPProfConfig [" + strconv .FormatBool (enabledPProf )+ ", " + strconv .Itoa (httpport )+ "]" , LogTarget_HttpServer )
162162}
163163
164164// SetLogger set user logger, the logger must implement logger.AppLog interface
@@ -271,24 +271,8 @@ func (app *DotWeb) SetConfig(config *config.Config) error {
271271// StartServer start server with http port
272272// if config the pprof, will be start pprof server
273273func (app * DotWeb ) StartServer (httpport int ) error {
274- //start pprof server
275- if app .Config .App .EnabledPProf {
276- if app .Config .App .PProfPort == httpport {
277- errStr := "PProf Server and HttpServer have the same port"
278- logger .Logger ().Warn ("Dotweb:StartPProfServer[" + strconv .Itoa (app .Config .App .PProfPort )+ "] failed: " + errStr , LogTarget_HttpServer )
279- } else {
280- logger .Logger ().Debug ("Dotweb:StartPProfServer[" + strconv .Itoa (app .Config .App .PProfPort )+ "] Begin" , LogTarget_HttpServer )
281- go func () {
282- err := http .ListenAndServe (":" + strconv .Itoa (app .Config .App .PProfPort ), nil )
283- if err != nil {
284- logger .Logger ().Warn ("Dotweb:StartPProfServer[" + strconv .Itoa (app .Config .App .PProfPort )+ "] error: " + err .Error (), LogTarget_HttpServer )
285- }
286- }()
287- }
288- }
289274 addr := ":" + strconv .Itoa (httpport )
290275 return app .ListenAndServe (addr )
291-
292276}
293277
294278// Start start app server with set config
@@ -319,8 +303,31 @@ func (app *DotWeb) MustStart() {
319303// ListenAndServe start server with addr
320304// not support pprof server auto start
321305func (app * DotWeb ) ListenAndServe (addr string ) error {
322- initInnerRouter (app .HttpServer )
306+ app .initServerEnvironment ()
307+ app .initInnerRouter ()
308+
309+ if app .HttpServer .ServerConfig .EnabledTLS {
310+ err := app .HttpServer .ListenAndServeTLS (addr , app .HttpServer .ServerConfig .TLSCertFile , app .HttpServer .ServerConfig .TLSKeyFile )
311+ return err
312+ } else {
313+ err := app .HttpServer .ListenAndServe (addr )
314+ return err
315+ }
316+
317+ }
318+
319+ // init inner routers
320+ func (ds * DotWeb ) initInnerRouter () {
321+ //默认支持pprof信息查看
322+ gInner := ds .HttpServer .Group ("/dotweb" )
323+ gInner .GET ("/debug/pprof/:key" , initPProf )
324+ gInner .GET ("/debug/freemem" , freeMemory )
325+ gInner .GET ("/state" , showServerState )
326+ gInner .GET ("/state/interval" , showIntervalData )
327+ gInner .GET ("/query/:key" , showQuery )
328+ }
323329
330+ func (app * DotWeb ) initServerEnvironment () {
324331 if app .ExceptionHandler == nil {
325332 app .SetExceptionHandle (app .DefaultHTTPErrorHandler )
326333 }
@@ -348,24 +355,18 @@ func (app *DotWeb) ListenAndServe(addr string) error {
348355 //add default httphandler with middlewares
349356 app .Use (& xMiddleware {})
350357
351- logger .Logger ().Log ("Dotweb:ListenAndServe[" + addr + "] begin" , LogTarget_HttpServer , LogLevel_Debug )
352- err := app .HttpServer .ListenAndServe (addr )
353- return err
354- }
355-
356- // StartServerWithConfig start server with config
357- func (app * DotWeb ) StartServerWithConfig (config * config.Config ) error {
358- err := app .SetConfig (config )
359- if err != nil {
360- return err
361- }
362- //start server
363- port := config .Server .Port
364- if port <= 0 {
365- port = DefaultHttpPort
358+ //start pprof server
359+ if app .Config .App .EnabledPProf {
360+ logger .Logger ().Debug ("DotWeb:StartPProfServer[" + strconv .Itoa (app .Config .App .PProfPort )+ "] Begin" , LogTarget_HttpServer )
361+ go func () {
362+ err := http .ListenAndServe (":" + strconv .Itoa (app .Config .App .PProfPort ), nil )
363+ if err != nil {
364+ logger .Logger ().Error ("DotWeb:StartPProfServer[" + strconv .Itoa (app .Config .App .PProfPort )+ "] error: " + err .Error (), LogTarget_HttpServer )
365+ //panic the error
366+ panic (err )
367+ }
368+ }()
366369 }
367- return app .StartServer (port )
368-
369370}
370371
371372// DefaultHTTPErrorHandler default exception handler
@@ -398,17 +399,6 @@ func HTTPNotFound(ctx Context) {
398399 http .NotFound (ctx .Response ().Writer (), ctx .Request ().Request )
399400}
400401
401- // init inner routers
402- func initInnerRouter (server * HttpServer ) {
403- //默认支持pprof信息查看
404- gInner := server .Group ("/dotweb" )
405- gInner .GET ("/debug/pprof/:key" , initPProf )
406- gInner .GET ("/debug/freemem" , freeMemory )
407- gInner .GET ("/state" , showServerState )
408- gInner .GET ("/state/interval" , showIntervalData )
409- gInner .GET ("/query/:key" , showQuery )
410- }
411-
412402//query pprof debug info
413403//key:heap goroutine threadcreate block
414404func initPProf (ctx Context ) error {
@@ -460,9 +450,9 @@ func showQuery(ctx Context) error {
460450}
461451
462452func logDotLogo () {
463- logger .Logger ().DebugRaw (` ____ __ __` , LogTarget_HttpServer )
464- logger .Logger ().DebugRaw (` / __ \ ____ / /_ _ __ ___ / /_` , LogTarget_HttpServer )
465- logger .Logger ().DebugRaw (` / / / / / __ \ / __/| | /| / / / _ \ / __ \` , LogTarget_HttpServer )
466- logger .Logger ().DebugRaw (` / /_/ / / /_/ // /_ | |/ |/ / / __/ / /_/ /` , LogTarget_HttpServer )
467- logger .Logger ().DebugRaw (`/_____/ \____/ \__/ |__/|__/ \___/ /_.___/` , LogTarget_HttpServer )
453+ logger .Logger ().Print (` ____ __ __` , LogTarget_HttpServer )
454+ logger .Logger ().Print (` / __ \ ____ / /_ _ __ ___ / /_` , LogTarget_HttpServer )
455+ logger .Logger ().Print (` / / / / / __ \ / __/| | /| / / / _ \ / __ \` , LogTarget_HttpServer )
456+ logger .Logger ().Print (` / /_/ / / /_/ // /_ | |/ |/ / / __/ / /_/ /` , LogTarget_HttpServer )
457+ logger .Logger ().Print (`/_____/ \____/ \__/ |__/|__/ \___/ /_.___/` , LogTarget_HttpServer )
468458}
0 commit comments