Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Scout/HowTo/3.7/Setup different Log-Configuration for Production and Development"
(New page: = Setup different Log-Configuration for Production and Development = When using eclipse log, things are described in the eclipse log manual (XXX where?). When using java log, by default t...) |
m (Scout/HowTo/Setup different Log-Configuration for Production and Development moved to Scout/HowTo/3.7/Setup different Log-Configuration for Production and Development) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = | + | {{ScoutPage|cat=HowTo 3.7}} |
+ | |||
When using eclipse log, things are described in the eclipse log manual (XXX where?). | When using eclipse log, things are described in the eclipse log manual (XXX where?). | ||
Line 30: | Line 31: | ||
Dev.java | Dev.java | ||
− | < | + | <source lang="java"> |
package com.myapp.logger; | package com.myapp.logger; | ||
import java.util.logging.LogManager; | import java.util.logging.LogManager; | ||
Line 41: | Line 42: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
Dev.properties | Dev.properties | ||
Line 64: | Line 65: | ||
DevFine.java | DevFine.java | ||
− | < | + | <source lang="java"> |
package com.myapp.logger; | package com.myapp.logger; | ||
import java.util.logging.LogManager; | import java.util.logging.LogManager; | ||
Line 75: | Line 76: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
DevFine.properties | DevFine.properties | ||
Line 101: | Line 102: | ||
Prod.java | Prod.java | ||
− | < | + | <source lang="java"> |
package com.myapp.logger; | package com.myapp.logger; | ||
import java.util.logging.LogManager; | import java.util.logging.LogManager; | ||
Line 112: | Line 113: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
Prod.properties | Prod.properties |
Latest revision as of 05:29, 4 May 2012
The Scout documentation has been moved to https://eclipsescout.github.io/.
When using eclipse log, things are described in the eclipse log manual (XXX where?).
When using java log, by default the jre's logging.properties in the jre/lib folder are used. For server-side equinox applications the logging config should be left to the application server.
For client applications there is the system property -Djava.util.logging.config.class= that can be used. This system property can be set in the product configuration's "Launching" tab and can be set to alternative configuration classes in each product (dev, test, production).
- Create a fragment to the system.bundle that contains various log config classes.
- Add the fragment to the product configurations
- set the -Djava.util.logging.config.class=.... accordingly
Example fragment com.myapp.logger.fragment
Make sure to put these files into the same package and export the package in the manifest (unexported packages lead to ClassNotFoundException!)
MANIFEST.MF
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Logger Configurations Bundle-SymbolicName: com.myapp.logger.fragment Bundle-Version: 1.0.0.qualifier Fragment-Host: system.bundle Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: com.myapp.logger
Dev.java
package com.myapp.logger; import java.util.logging.LogManager; public class Dev { public Dev() throws Exception{ System.out.println("Loading logger configuration: "+getClass()); LogManager.getLogManager().readConfiguration(getClass().getResourceAsStream(getClass().getSimpleName()+".properties")); } }
Dev.properties
### Root level (do NOT set the root level to INFO, use the custom levels below) .level= WARNING ### Handlers handlers= java.util.logging.ConsoleHandler ### Handler properties # you have to set a value for the ConsoleHandler or otherwise it will set the Level INFO as default # and ignore all other levels java.util.logging.ConsoleHandler.level=ALL
System/Launching property:
-Djava.util.logging.config.class=com.myapp.logger.Dev
DevFine.java
package com.myapp.logger; import java.util.logging.LogManager; public class DevFine { public DevFine() throws Exception{ System.out.println("Loading logger configuration: "+getClass()); LogManager.getLogManager().readConfiguration(getClass().getResourceAsStream(getClass().getSimpleName()+".properties")); } }
DevFine.properties
### Root level (do NOT set the root level to INFO, use the custom levels below) .level= WARNING ### Handlers handlers= java.util.logging.ConsoleHandler ### Handler properties # you have to set a value for the ConsoleHandler or otherwise it will set the Level INFO as default # and ignore all other levels java.util.logging.ConsoleHandler.level=ALL ### Custom log levels com.myapp.server.online.services.common.sql.SqlService.level=INFO
System/Launching property:
-Djava.util.logging.config.class=com.myapp.logger.DevFine
Prod.java
package com.myapp.logger; import java.util.logging.LogManager; public class Prod { public Prod() throws Exception{ System.out.println("Loading logger configuration: "+getClass()); LogManager.getLogManager().readConfiguration(getClass().getResourceAsStream(getClass().getSimpleName()+".properties")); } }
Prod.properties
### Root level (do NOT set the root level to INFO, use the custom levels below) .level= WARNING ### Handlers handlers= java.util.logging.FileHandler ### Handler properties # .pattern is the log file path, this default here outputs in user's home directory java.util.logging.FileHandler.pattern = %h/my-log%u.log java.util.logging.FileHandler.limit = 100000000 java.util.logging.FileHandler.count = 10 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter ### Custom log levels
System/Launching property:
-Djava.util.logging.config.class=com.myapp.logger.Prod